robotont_driver package from robotont_driver reporobotont_driver |
|
Package Summary
Tags | No category tags. |
Version | 0.1.4 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/robotont/robotont_driver.git |
VCS Type | git |
VCS Version | humble-devel |
Last Updated | 2024-09-16 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Veiko Vunder
Authors
- Sven-Ervin Paap
robotont_driver
ROS driver package for robotont.
This package handles low-level communication between ROS and robotont hardware.
1. Installing and starting the driver from ROS distro
1. Ensure Your System’s Distribution is Supported. ROS 2 Humble supports Ubuntu 22.04 (Jammy)
2. Install ROS 2 Humble Installing ROS2 Humble
3. Install robotont driver
sudo apt install ros-humble-robotont-driver
4. Source install files and start the driver using the launch configuration
source /opt/ros/humble/setup.bash
ros2 launch robotont_driver driver_launch.py
Launch parameters are defined in 3 different places. With the following hierarchy (lower number overwrites higher number):
- 1: The parameters defined in the parameters file
- 2: The parameters specified via command line, when using the launch file
- 3: The parameters hardcoded in the driver code
To change the launch parameters once, they can also be specified via the command line:
ros2 launch robotont_driver driver_launch.py device_name:='/dev/ttyACM0'
2. Installing and starting the driver using source code
1. Ensure Your System’s Distribution is Supported. ROS 2 Humble supports Ubuntu 22.04 (Jammy)
2. Install ROS 2 Humble and create a workspace Creating a workspace
3. Pull driver repo and install ROS dependencies
Navigate to workspace root folder
sudo rosdep init
rosdep update
rosdep install --from-paths src -y --ignore-src
The driver also relies on the following packages:
- 1: io-context
- 2: serial-driver
- 3: asio-cmake-module
sudo apt install ros-humble-io-context ros-humble-serial-driver ros-humble-asio-cmake-module
4. Build the driver
Ensure you are in your workspace root folder and enter the following commands to install them:
colcon build
5. Source install files and start the driver using the launch configuration
source install/local_setup.bash
ros2 launch robotont_driver driver_launch.py
Launch parameters are defined in 3 different places. With the following hierarchy (lower number overwrites higher number):
- 1: The parameters defined in the parameters file
- 2: The parameters specified via command line, when using the launch file
- 3: The parameters hardcoded in the driver code
To change the launch parameters once, they can also be specified via the command line:
ros2 launch robotont_driver driver_launch.py device_name:='/dev/ttyACM0'
3. Moving the robot
The drivers for the simulated and the real robot both subscribe to a cmd_vel
topic. To move the robot, we have to publish velocity messages to this exact topic.
Here we use the teleop_twist_keyboard node, which translates command line keypresses to velocity messages and published these by default on cmd_vel
topic.
Run the node
ros2 run teleop_twist_keyboard teleop_twist_keyboard
- Follow the printout in the console to learn how to control the robot. Enjoy the ride!
4. Available plugins
plugin_odom
This plugin receives the ODOM packet from the robot and publishes the data on /odom (<nav_msgs::Odometry>) topic. This plugin also broadcasts an odom frame via TF.
plugin_motor
This plugin subscribes to cmd_vel topic and relays the velocities to robotont’s motors
Changelog for package robotont_driver
0.1.4 (2024-05-19)
- Changes to parameter handling
- Contributors: Zhven
0.1.2 (2024-03-18)
0.1.1 (2024-03-18)
- Solved build warnings
- Odom fix
- fixed timeout
- added timeout to the fake_driver and descriprion launch to the launch file
- Merge pull request #16 from robotont/humble-devel-raimo Humble devel raimo
- removed redundant dependency
- resolving minor merge conflict from led plugin
- Add license file
- generic commenting
- commented out some code
- Added ledmodule code
- Smalle changes to README
- Reworked logging and odom namespace
- Foundation for led and range plugins
- First implementation of fake_driver
- Added plugin launch arguments
- Launch file + parameters
- Tested and validated current functionality. Added some comments.
- Working odom + cmd_vel
- Functional Odom and TF messages
- Merge branch 'ros2-foxy-devel' into devel-ros2-rolling
- Groundwork for odom plugin layed out
- first attempt at plugins
- Create README.md
- Ubuntu 22 + Ros2 rolling
- First rolling commit
- reverted async_receive_handler; added watchdog timer for serial port monitoring
- Serial reading working without correct error handling.
- End of file error
- Attempted serial echo
- New beginnings; compiling code with working reading from serial
- Changes to packet polling
- Serial data packet passing between nodes is functional
- Serial read improvements
- Merge branch 'ros2-foxy-devel' of https://github.com/robotont/robotont_driver into ros2-foxy-devel
- Incomplete mess
- template with async read working, moved to robotont namespace
- passing node shared pointer to the hardware class, still have to resolve a weak ptr exception due to shared_from_this() being called from constructor
- Subscriber not working
- Reading from serial working
- First working compile
- First successful compile
- First commit. Include errors.
- Initial ROS2 commit
- Merge pull request #13 from robotont/melodic-devel-maarika stopping mechanism
- velocities to 0
- stop
- Merge pull request #12 from robotont/melodic-devel-ns-slash Melodic devel ns slash
- improved comment layout
- ns with slash
- Merge pull request #11 from robotont/melodic-devel-ns Namespaced
- removed instructions about remapping
- Merge branch 'melodic-devel' into melodic-devel-ns
- Merge pull request #9 from robotont/melodic-devel-veiko Travis fix
- turning debug off again
- converted run_depend tags for package format 2
- travis:enable debugging
- removed cmake_modules dependency, package.xml format 2
- changed arg name
- ns
- ns
- driver_basic ns
- ns
- Merge pull request #6 from robotont/melodic-devel-veiko Melodic devel veiko
- travis from .org to .com
- renaming RobotontHW->Hardware and RobotontDriver->Driver
- Merge branch 'melodic-devel' into melodic-devel-veiko
- Merge pull request #5 from robotont/melodic-devel-maarika removed gazebo_driver and gazebo_odom
- removed gazebo_driver and gazebo_odom
- changed loglevel of loading messages and removed text formatting dependency from launch file
- control a single led or the whole segment with a same keyword
- Merge pull request #3 from robotont/melodic-devel-veiko cleaned up deprecated stuff
- improvements based on Karl's review
- frame changed to base_link
- namespaces for android app instructions in README
- minor improvements to README
- specifying rosinstall file in .travis.yml
- moved travis upstream workspace packages to a separate .rosinstall file
- added robotont_msgs to travis script
- added install tags to CmakeLists and removed old .rviz file
- Namespace explanations to readme, added travis
- put fake driver under robotont ns, reusing launch files from robotont_description
- added dependency to robotont_description, fixed a typo in authors name
- restructuring the main README.md, merged stuff from src/README.md and removed it
- Updated authors, maintainers, and other meta info
- Need to specify namespace when running keyboard teleop node with rosrun.
- cleaned up deprecated stuff
- removed deprecated fake_odom.launch
- Merge remote-tracking branch 'origin/melodic-devel-maarika' into melodic-devel-veiko
- Merge remote-tracking branch 'origin/melodic-devel-ranno' and 'origin/melodic-devel-rvalner into melodic-devel-veiko
- removed typo from readme
- removed typo from readme
- modified readme
- changed fake_odom_publisher.ccp -> fake_driver_node.cpp and added fake_driver.launch
- C++ 11 standard added
- Added power supply status plugin
- led module plugin, range plugin
- fixed duplicate iterator increase bug in writePacket function
- modular plugin based architecture - a complete rewrite
- implementation template for RangeSensor
- sensors node
- Merge pull request #2 from robotont/melodic-devel-veiko removed deprecated notification from readme
- removed deprecated notification from readme
- Merge pull request #1 from robotont/ihar fake odom added
- joy is removed
- fake_odom_publisher created
- copy from the old repository
- Initial commit
- Contributors: Ihar Suvorau, M, RValner, Raimo Köidam, Veiko, Veiko Vunder, Veix123, Zhven, kasutaja, kruusamae, m, patsyuk03, peko, rannomspp, sven-ervin.paap
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
asio |