viam-ros2-module
This is a simple viam-ros integration which has been tested with ROS2 Humble turtlebots.
How To Use
- Install Viam on ROS2 Humble robot
- clone repo on robot using
git clone
- setup virtual environment using
setup.sh
- configure ROS2 module in https://app.viam.com
- configure each component (see sample_config.json as reference)
Viam running as root and rmw_fastrtps_cpp
By default, rmw_fastrtps_cpp uses eProsima DDS implementation,
which makes use of shared memory transports
when communication is between entities running on the same processing unit (or host).
Since viam by default starts as root, there are some shared memory issues. The current fix is to update
the DDS implementation to use UDPv4
as the only transport, see fastdds_rpi.xml for
the example config used in turtlebot4.
TODO
Overall
- update sensor to use single viam node
- create test cases for each message type supported
- improve documentation
- add message
- fix ros_base (only publish when needed - currently sending all the time)
- set parameter config
- ability to build custom messaging
turtlebot specific
- service calls such as dock etc.
- more fun stuff
References
- viam
- humble
- turtlebot4
- turtlebot4 user guide
Contact
Any issues feel free to open an issue on the github, create pull requests, etc.