shawnbmccarthy / viam-ros2-module

4 stars 4 forks source link

viam-ros2-module

This is a simple viam-ros integration which has been tested with ROS2 Humble turtlebots.

How To Use

  1. Install Viam on ROS2 Humble robot
  2. clone repo on robot using git clone
  3. setup virtual environment using setup.sh
  4. configure ROS2 module in https://app.viam.com
  5. 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

  1. update sensor to use single viam node
  2. create test cases for each message type supported
  3. improve documentation
  4. add message
  5. fix ros_base (only publish when needed - currently sending all the time)
  6. set parameter config
  7. ability to build custom messaging

turtlebot specific

  1. service calls such as dock etc.
  2. more fun stuff

References

  1. viam
  2. humble
  3. turtlebot4
  4. turtlebot4 user guide

Contact

Any issues feel free to open an issue on the github, create pull requests, etc.