Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs/fix robot system launch path #186

Conversation

flippybit
Copy link

Hi @ipa-cmh and @ipa-vsp
Here is my 1st real PR. 😅

The fix is to solve issue #182
a FileNotFoundError when following the humble user-guide "How to create a robot system" readthedocs

The user guide references the robot_control_launch.py file which expects the robot_controller.urdf.xacro file at a certain path.
However, this path does not align with the location where the canopen_tests package actually keeps it:
canopen_tests/urdf/robot_controller/robot_controller.urdf.xacro

I apologize if I've overlooked any GitHub best practices. Thank you for your understanding in advance.

hellantos and others added 30 commits June 6, 2023 08:28
* Introduce canopen system interface.

* Enable easy testing temporarily.

* Print config paths on init.

* Add device manager and executor.

* Start device manager in system interface.

* Add nmt and rpdo callbacks.

* Remove pedantic cmake flags.

* Add internal caching structures for canopen nodes.

* Expose necessary stuff from proxy driver.

* Apply suggestions from code review

* Fix dependencies for canopen_ros2_control.

* Move device manager instantation into on_config.

* Introduce canopen system interface.

* Enable easy testing temporarily.

* Print config paths on init.

* Add device manager and executor.

* Start device manager in system interface.

* Add nmt and rpdo callbacks.

* Remove pedantic cmake flags.

* Add internal caching structures for canopen nodes.

* Expose necessary stuff from proxy driver.

* Apply suggestions from code review

* Add missig dependencies and execute tests only when testing.

* Remove unneccesary deps.

* Rename "device manager" to "device container" and disable test because it is now working in the current setup.

* Update .gitignore

* Remove some unecessary changes.

* Fix merging issues.

* Update visibility-control macros.

* Disable test because they can not be eaisly tested.

* Update canopen_core/CMakeLists.txt

* Solve Boot Error (ros-industrial#49)

* Update CI for new version branches

* Simplify configuration folder and use existing .eds, .dcf file. Improve test launch file. Update runtime deps.

* Add template for canopen proxy controller.

* Add dummy services, rt publishers and subscribers to proxy controller.

* Expose controller plugin. Start canopen proxy controller instance in example.

* Add publishing of rpdo and nmt state.

* Add service one shot mechanisms.

* Apply suggestions from code review

* Add tests to canopen_tests

* Reorganise test launch system

* update package.xml

* further changes

* Remove bus.yml

* Adapt canopen_system.launch.py for 2 nodes

* Update documentation in the readme

* Add documentation about testing ros2_control generic interface.

* Disable dynamic loading for containers (ros-industrial#50)

* disable loader service

* Remove artifacts

* Publish joint state instead of velocity topics (ros-industrial#47)

* disable loader service

* add custom target/command and install to macro

* publish jointstate

* correct variable name squiggle

* Minor changes to driver and slave

* Update lely core library

* Add sensor_msgs to dependencies

* Remove artifacts

* Remove some artifacts

* Add configuration parameter passthrough (ros-industrial#52)

* Apply suggestions from code review

Co-authored-by: Christoph Hellmann Santos <[email protected]>

* Correct macro names.

* Add service qos specific profile.

* Introduce tests. Adapt proxy controller for easier testing.

* Update README.md

* make documentation on test with ros2_control more detailed

Make the test documentation a small example with explanations of the functionality.

* Add in code documentation for canopen_core (ros-industrial#53)

* Document device container node

* Document lely_master_bridge

* Document Lifecycle Device Container

* Document Lifecycle Device Manager

* Document LifecyleMasterNode

* Document Master Node

* Fix error

* Document lifecycle base driver

* Document lely bridge

* Document canopen_proxy_driver

* Document canopen_402_driver

* Restructure documentation (ros-industrial#37)

* Document device container node

* Document lely_master_bridge

* Document Lifecycle Device Container

* Document Lifecycle Device Manager

* Document LifecyleMasterNode

* Document Master Node

* Fix error

* Document lifecycle base driver

* Document lely bridge

* Document canopen_proxy_driver

* Document canopen_402_driver

* Update sphinx documentation

* Add profiled position to mock slave (ros-industrial#58)

* Implement review requests regarding tests.

* Add core node interfaces

* Add errors

* Add node base classes

* Remove device and do some renaming

* Add tests to canopen core

* Update CmakeFile of canopen core

* Add canopen_master_driver package and contents

* Make changes to canopen_base_driver for new structure

* Change canopen_base_driver for templating problems

* Add canopen_proxy_driver with new framework

* canopen_402_driver adaption to new framework

* Update header guards

* Add device container and general changes to make things work.

* Add function to device container

* Integration with ros2_control

* Add type accessor functions to device_container

* add node interface accessor  and lifecycle information to drivers

* Add master dcfs and remove from gitignore

* Add 402 driver functions for ros2_control

* Add CanopenDriverInterface Documentation

* Feature parity for lifecycle nodes

* Fix canopen_master_driver for explicit instantiation

* Fix canopen_master_driver tests

* Fix tests canopen_core

* Fix tests base driver

* Try running source install/setup.bash

* Fix integration tests

* Integrate lifecycle manager

* Fix get speed and get position

* Fix node_canopen_402_drivers add_to_master and handlers

* Streamline logging

* Remove canopen_lifecycle.launch.py as it i no longer needed.

* Add lifecycle manager to device_container library

* Undo formatting in ros2_control

* fix ci

* Fix 402 issues from testing

* undo renaming can_interface_name -> can_interface

* Publish to joint_states, not joint_state (ros-industrial#63)

Co-authored-by: G.A. vd. Hoorn <[email protected]>

Co-authored-by: Christoph Hellmann Santos <[email protected]>

* Add unit tests for canopen_core (ros-industrial#64)

* Testing changes to canopen_core

* Testing changes to canopen_base_driver and canopen_402_driver

* Add canopen_core tests (90% coverage)

* Fix DriverException error in canopen_402_driver

* Catch errors in nmt and rpdo listeners

* Fix naming issues

* Fix deactivate transition

* Fix unclean shutdown

* Rename canopen_mock_slave package to canopen_fake_slaves (ros-industrial#66)

* Testing changes to canopen_core

* Testing changes to canopen_base_driver and canopen_402_driver

* Add canopen_core tests (90% coverage)

* Fix DriverException error in canopen_402_driver

* Catch errors in nmt and rpdo listeners

* Fix naming issues

* Fix deactivate transition

* Fix unclean shutdown

* Rename canopen_mock_slave to canopen_fake_slaves

* Build flage CANOPEN_ENABLED for disabling tests on CI.

* Update deployment

* Documentation for streamlined design (ros-industrial#67)

* Add canopen_core tests (90% coverage)

* Restructure and add plantuml

* Changes to quickstart/configuration

* Revert "Add canopen_core tests (90% coverage)" as it is not needed.

This reverts commit 771c498.

* Create custom driver documentation

* Remove breathe api reference and use doxygen

* Update interface and naming information for drivers

* Update  test documentation

* install plantuml

* Update README.md

* Add bare-bone 402 profile system interface.

* Add position and speed getter.

* State and command interfaces.

* Update dependencies.

* To protected members for easier inheritance policy.

* Fix public fcn visibility.

* Adapt 402 hardware interface to device container getter.

* Prepare read/write/

* Extend 402 functions via public methods - same as callback based ones.

* Expose 402 main functionalities to ros2_control system interface.

* Add vel and pos interfaves.

* Update proxy canopen system.

* Add basic read and write. Divide targets into position, velocity, effort interfaces.

* Duplicate some code for configure, init, write phase from proxy driver.

* Set target based on condition.

* Handle init, recover, halt. Switch modes.

* Fix feedback for services for proxy driver and controlller.

* Prepare cia 402 device controller.

* Add base function ret values first.

* State and command interfaces.

* Add services for one shot interfaces in cia402 profile.

* Better handling of base class on_methods.

* Update runtime deps.

* Fix joint states scaling.

* Add virtual can example for cia 402.

* Fix internal launch test.

* Fix proxy test.

* intra_process_comms

* Doxygen documentation for canopen_core (ros-industrial#78)

* canopen_core in code documentation

* Some more documentation

* intra_process_comms

* Doxygen documentation for canopen_core (ros-industrial#78)

* canopen_core in code documentation

* Some more documentation

* Remove scalers

* Clean cia402 fake shutdown (ros-industrial#72)

* adapt fake cia402 slave

* Handle demand set master failure (ros-industrial#70)

* adapt fake cia402 slave

* Add retries for demand_set_master in case of failure

* Scaling factors for position and velocity (ros-industrial#74)

* Introduce scaling factors

* Remove false license statements (ros-industrial#76)

* Remove false license statements

* Disable device container tests (ros-industrial#77)

* Add formatters as used in ros2_control framework.

* Changes to format and checkers

* Substitute @BUS_CONFIG_PATH@ in bus configuration file

* Use @BUS_CONFIG_PATH@ variable in bus configuration files

* Precommit changes (ros-industrial#79)

* Precommit changes

* Update to clang-format-14

* Don't treat options section as another device

* Use options section in test bus config files

* Remove references to sympy.true (ros-industrial#84)

Co-authored-by: James Ward <[email protected]>

* add short documentation

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add dcf_path to bus.ymls

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Don't treat options as driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Format updates

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Better organize dependencies (ros-industrial#88)

* Add EMCY callback to base driver (ros-industrial#91)

* Add post build testing in readme (ros-industrial#87)

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Simplify 402 driver (ros-industrial#89)

* Split motor.hpp and motor.cpp into different files

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix missing symbol error

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add Interpolated Position Mode (linear only, no PT or PVT) (ros-industrial#90)

* Add Interpolated Position Mode (linear only, no PT or PVT)

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* add interpolated position mode to system interface

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add interpolated position mode to controllers.

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add to interpolated position mode to documentation

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix typo in README (ros-industrial#92)

* Correct repo link (ros-industrial#94)

* Implemented thread-safe queue for rpdo and emcy listener (ros-industrial#97)

* Boost lock free queue implemetation

* include boost libraries in CMakelists

* Testing rpdo/tpdo ping pond

* pre-commit changes

* Bugfix: implemented timeout for wait_and_pop to avoid thread blocking

* Fixed typo

* pre-commit update

* FIxed: properly export Boost libraries

* Update code documentation

* proper vel and pos scaling from device

* Include rpdo/tpdo test in launch_test. (ros-industrial#98)

* Implement rpdo/tpdo test

* Removed unnecessary files

* Fix stack smashing (ros-industrial#103)

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Motor Profile Updates (ros-industrial#101)

* Extend and fix info statement.

* Fix service handler overwriting.

* Consider enum 3 as profiled velocity. Remove some code duplication by reusing private setters in service cbs. Create setter for interpolated position mode.

* Fix cyclic position mode.

* Simplify write method cases defined by mode of op.

* Add driver dictionaries (ros-industrial#110)

* Get slave eds and bin in node_canopen_driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add dictionary to base driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Enable dictionary in proxy drivers

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add a few test objects

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add pdo checks

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Adjust 402 driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* rename to get_xx_queue

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add typed sdo operations

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Remove type indication from msg and srv interfaces (ros-industrial#112)

* Get slave eds and bin in node_canopen_driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add dictionary to base driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Enable dictionary in proxy drivers

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add a few test objects

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add pdo checks

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Adjust 402 driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* rename to get_xx_queue

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add typed sdo operations

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Remove object datatype where possible

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Reduce processor load (ros-industrial#111)

* Get slave eds and bin in node_canopen_driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add dictionary to base driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Enable dictionary in proxy drivers

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add a few test objects

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add pdo checks

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Adjust 402 driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* rename to get_xx_queue

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add typed sdo operations

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Remove object datatype where possible

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add plain operation mode setting + switchingstate

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add robot system interface

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add robot system controller

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add robot_system_tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add a bit of documentation

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add in code documentation

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix bug

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add examples section

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix set_target for interpolated mode

* Switch to rclcpp::sleep_for

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix initialization for state and command interface variables

* Add remade robot system interfce

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add copyright info

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix missing return statement

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* processing behavior improvement

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Minor changes to make things work

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add poll_timer_callback

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix format

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add polling mode variable for config.

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Co-authored-by: Vishnuprasad Prachandabhanu <[email protected]>

* Robot system interface (ros-industrial#113)

* Get slave eds and bin in node_canopen_driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add dictionary to base driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Enable dictionary in proxy drivers

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add a few test objects

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add pdo checks

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Adjust 402 driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* rename to get_xx_queue

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add typed sdo operations

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Remove object datatype where possible

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add plain operation mode setting + switchingstate

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add robot system interface

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add robot system controller

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add robot_system_tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add a bit of documentation

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add in code documentation

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix bug

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add examples section

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix set_target for interpolated mode

* Switch to rclcpp::sleep_for

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix initialization for state and command interface variables

* Add remade robot system interfce

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add copyright info

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix missing return statement

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* processing behavior improvement

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Minor changes to make things work

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add poll_timer_callback

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix format

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add polling mode variable for config.

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Co-authored-by: Vishnuprasad Prachandabhanu <[email protected]>

* Enable simplified bus.yml format (ros-industrial#115)

* Get slave eds and bin in node_canopen_driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add dictionary to base driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Enable dictionary in proxy drivers

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add a few test objects

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add pdo checks

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Adjust 402 driver

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* rename to get_xx_queue

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add typed sdo operations

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Remove object datatype where possible

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add plain operation mode setting + switchingstate

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add robot system interface

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add robot system controller

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add robot_system_tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add a bit of documentation

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add in code documentation

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix bug

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add examples section

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix set_target for interpolated mode

* Switch to rclcpp::sleep_for

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix initialization for state and command interface variables

* Add remade robot system interfce

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add copyright info

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix missing return statement

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* processing behavior improvement

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Minor changes to make things work

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add poll_timer_callback

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix format

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add polling mode variable for config.

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add cogen

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add example usage for cogen

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Remove explicit path

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Co-authored-by: Vishnuprasad Prachandabhanu <[email protected]>

* add dedicated documentation for humble, rolling and iron

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Co-authored-by: Lovro <[email protected]>
Co-authored-by: Denis Štogl <[email protected]>
Co-authored-by: Denis Štogl <[email protected]>
Co-authored-by: Dr.-Ing. Denis Štogl <[email protected]>
Co-authored-by: G.A. vd. Hoorn <[email protected]>
Co-authored-by: Błażej Sowa <[email protected]>
Co-authored-by: James Ward <[email protected]>
Co-authored-by: James Ward <[email protected]>
Co-authored-by: Chris Schindlbeck <[email protected]>
Co-authored-by: Vishnuprasad Prachandabhanu <[email protected]>
Co-authored-by: Vishnuprasad Prachandabhanu <[email protected]>
* Improve lely compilation time

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Bump lely_core_librries to version 2.3.2

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add license files

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Adapt package xml

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add changelogs - forthcoming for now.

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Update readme

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add apacje-2.0 license notifications to files

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
* Add documenation for cia301

* Update ros2-control-interface.rst

Fix some format problems... Still have issue showing the example code

* Update ros2-control-interface.rst

Make the code rending okay.. Still have issues with the code blocks

* Update ros2-control-interface.rst

Minor changes

* Fix the format so that it builds

* Update ros2-control-interface.rst

* Update ros2-control-interface.rst

* Update configuration section

* Update configuration in documentation

* Update structure

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Application demos: trinamic stepper motor

* fix formatting and typo

* Integrate the documentation from the master branch

* Update ros2-control-interface.rst

* Application demos: PRBT robot with ros2_canopen

* Rename and add to index

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Co-authored-by: Xi Huang <[email protected]>
Co-authored-by: Vishnuprasad Prachandabhanu <[email protected]>
* Diagnostic msgs publisher for proxy diver

* diagnostic msgs for cia402 and motor interface

* Restructured message constructor

* Added option to enable/disable diagnostic

* Add diagnostic test in proxy driver

* Diagnostics test launch for proxy and cia402

* proxy driver switched to diagnostic updater

* Complete diagnostic implementation for cia402  driver

* Update formating

* include code documentation
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Sync humble with Beta (0.2.0) release
…lders-issue

Remove using namespace std::placeholders
* Update rolling.yml

* Merge pull request ros-industrial#152 from ros-industrial/fix-bdist-dep-in-lely-core

Do not build dcf-tools bdist in lely_core_libraries

* Merge pull request ros-industrial#142 from ros-industrial/iron-test-fixes-controllers

Don't use ros2_control_test_assets since not needed anymore. Add load tests for all controllers.

* Merge pull request ros-industrial#145 from ros-industrial/consistent-output-of-hex-values

Use consistenlty (uppercase) HEX output for NodeID and Index.

* Merge pull request ros-industrial#151 from ros-industrial/upgrade-launch-tests

Fix proxy driver lifecyle and launch tests

* Update Changelogs

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* 0.2.1

* Fix build warnings

* Update status badge.

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Co-authored-by: Christoph Hellmann Santos <[email protected]>
Co-authored-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
* Move exec deps from ros2_control to tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Remove mkdir in install dir from cogen and dcfgen
This causes a permission denied error on buildfarm.
The install command creates it anyways

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Christoph Hellmann Santos and others added 23 commits July 14, 2023 09:45
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
* Update README.md

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
…ial#165)

* Add missing license headers

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Add fix ament_lint_cmake

Signed-off-by: Christoph Hellmann Santos <[email protected]>

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
…ests. (ros-industrial#148)

* Correct Proxy controller after changes and update docs

* Update codespellignore

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix owns/ons error in tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fixup tests.

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Co-authored-by: Christoph Hellmann Santos <[email protected]>
* Correct Proxy controller after changes and update docs

* Update codespellignore

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fix owns/ons error in tests

Signed-off-by: Christoph Hellmann Santos <[email protected]>

* Fixup tests.

* Small docs updates.

* Change tpdo data.

* Add nmt to the system test.

* Update doc to prove working tpdo rpdo

* Fix typo

* Fix formatting.

* Optimize docs.

---------

Signed-off-by: Christoph Hellmann Santos <[email protected]>
Co-authored-by: Christoph Hellmann Santos <[email protected]>
Co-authored-by: Xi Huang <[email protected]>
Signed-off-by: Christoph Hellmann Santos <[email protected]>
@ipa-vsp
Copy link
Member

ipa-vsp commented Aug 14, 2023

Hi @flippybit,

I have merged your changes from branch docs/fix_robot_system_launch_path into PR #176 to prevent conflicts with the master branch.

Thanks for your review!

@flippybit
Copy link
Author

flippybit commented Aug 14, 2023

Hi @ipa-vsp ,

I knew i did something wrong when i saw all the confilicts i followed some guide were i needed to open a branch for making a pull request.
Anyways i think i have found another discrepancy in the docs.
Should i share my findings opening a new issue ? || do i just post it here ?

thnx !

@ipa-vsp
Copy link
Member

ipa-vsp commented Aug 15, 2023

Hi @flippybit,

You can post it here.

Thank you!

@flippybit
Copy link
Author

ros2 humble guide "How to create a robot system with ros2_control"

I think i have found 2 minor discrepencies in the "How to create a robot system with ros2_control" Point 12:

(Using the ros2 humble guide readthedocs)

1 There is no such topic name /joint1/forward_position_controller

CLICK TO EXPAND.

In the docs point 12

It states:
You can now control the robot with the forward_command_controller.
You can as well visualize the robot in rviz by adding a tf or a robot_model and setting the fixed frame to base_link

You can move the robot with the following command:

ros2 topic pub /joint1/forward_position_controller/command std_msgs/msg/Float64 "data: [1.0, 1.0]"

But this gives the following error output:

Failed to populate field: Value '[1.0, 1.0]' is expected to be a dictionary but is a list

My investigations/probings

1 There is not such topic named /joint1/forward_position_controller

If you run

$ ros2 topic list

You get the following topics:

/clicked_point
/dynamic_joint_states
/forward_position_controller/commands  <-- I THINK THIS IS THE TOPIC WE WANT TO PUBLISH TO
/forward_position_controller/transition_event
/goal_pose
/initialpose
/joint_1/joint_states
/joint_1/nmt_state
/joint_1/rpdo
/joint_1/tpdo
/joint_2/joint_states
/joint_2/nmt_state
/joint_2/rpdo
/joint_2/tpdo
/joint_state_broadcaster/transition_event
/joint_states
/parameter_events
/robot_description
/rosout
/slave_node_1/transition_event
/slave_node_2/transition_event
/tf
/tf_static

If you ask ROS2 for more info about /forward_position_controller/commands

$ ros2 topic info /forward_position_controller/commands 
Type: std_msgs/msg/Float64MultiArray
Publisher count: 0
Subscription count: 1

Proposed solution

publish to the /forward_position_controller/commands

ros2 topic pub /forward_position_controller/commands std_msgs/msg/Float64MultiArray "data: [1.0, 1.0]"

This outputs:

ros2 topic pub /forward_position_controller/commands std_msgs/msg/Float64MultiArray "data: [1.0, 1.0]"
publisher: beginning loop
publishing #1: std_msgs.msg.Float64MultiArray(layout=std_msgs.msg.MultiArrayLayout(dim=[], data_offset=0), data=[1.0, 1.0])

publishing #2: std_msgs.msg.Float64MultiArray(layout=std_msgs.msg.MultiArrayLayout(dim=[], data_offset=0), data=[1.0, 1.0])

publishing #3: std_msgs.msg.Float64MultiArray(layout=std_msgs.msg.MultiArrayLayout(dim=[], data_offset=0), data=[1.0, 1.0])

2 There is no base_link in the /robot_description

In the docs it tells you to visualize the movement of the joints using rivz2:

In the docs it states:
" You can as well visualize the robot in rviz by adding a tf or a robot model and setting the fixed frame to base_link:"

CLICK TO EXPAND.

If you run:

ros2 run tf2_tools view_frames

You get the following transform tree with NO base_link

Proposed solution

1. Run rviz2

ros2 run rviz2 rviz2 

2. Configure rviz2

  1. Add a robot model
    Select as a Description Source Topic
    Select as Description Topic /robot_description

  2. In Global Options
    Set Fixed Frame as World

rviz2_before

3. Visualize the cilinder move like magic

ros2 topic pub /forward_position_controller/commands std_msgs/msg/Float64MultiArray "data: [1.0, 1.0]"

rviz2_after

Hope it helped someone!

@destogl
Copy link
Collaborator

destogl commented Aug 29, 2023

@Xi-HHHM can you please check this?

@ipa-vsp
Copy link
Member

ipa-vsp commented Aug 20, 2024

Continue #283

@ipa-vsp ipa-vsp closed this Aug 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants