robotont_driver repository

Repository Summary

Checkout URI https://github.com/robotont/robotont_driver.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-02-20
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
robotont_driver 0.1.0

README

robotont_driver

ROS driver package for robotont.

This package handles low-level communication between ROS and robotont hardware.

CI License

1. Installing and starting the driver

1. Install Ubuntu 22.04

2. Install ROS 2 Rolling 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 lower number): * 1: The parameters specified via command line, when using the launch file * 2: The parameters defined in 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. 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!

3. Available plugins

plugin_odom

This plugin receives the ODOM packet from the robot and publishes the data on /odom (<: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

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/robotont/robotont_driver.git
VCS Type git
VCS Version rolling-devel
Last Updated 2023-11-27
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
robotont_driver 0.1.0

README

robotont_driver

ROS driver package for robotont.

This package handles low-level communication between ROS and robotont hardware.

CI License

1. Installing and starting the driver

1. Install Ubuntu 22.04

2. Install ROS 2 Rolling 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 lower number): * 1: The parameters specified via command line, when using the launch file * 2: The parameters defined in 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. 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!

3. Available plugins

plugin_odom

This plugin receives the ODOM packet from the robot and publishes the data on /odom (<: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

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/robotont/robotont_driver.git
VCS Type git
VCS Version noetic-devel
Last Updated 2023-05-03
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
robotont_driver 0.0.1

README

robotont_driver

ROS driver package for robotont.

This package handles low-level communication between ROS and robotont hardware.

CI License

1. Starting the driver

Real robot

On a real robot, the driver is started automatically via a system service. You can perform several checks to verify that the driver is running properly.

To check the status of the service:

systemctl status robotont.service

If the driver node is running you should also see '/driver_node' in the output of:

rosnode list

In case any of the above checks should fail try restarting the service (see the robotont_support package) or launch the driver node manually:

roslaunch robotont_driver driver_basic.launch

Fake driver

In case you don't have a real robot nearby, you can run this simple dummy node that subscribes to velocity commands and publishes odometry. This driver does not know anything about physics and performs a simple integration. To start the fake driver with RViz visualization:

roslaunch robotont_driver fake_driver.launch

Gazebo simulation

For a more physics-based experience, the real robot can be replaced with a Gazebo simulation. Please see the robotont_gazebo package for further information.

2. Moving the robot using a keyboard

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

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

  • If teleop twist keyboard is not installed:
sudo apt-get install ros-noetic-teleop-twist-keyboard

  • Follow the printout in the console to learn how to control the robot. Enjoy the ride!

3. Moving the robot using an Android device

  • Find out your computer's IP address:
ifconfig

  • From your Android device, go to Google Play Store and install the ROS Control app.
  • Open the ROS Control app on your phone.
  • Add a new robot using the plus sign in the top right corner and give it a desired name.
  • Insert your computer's IP address into the Master URI field by entering the following:
http://IP_address:11311

  • Click on "Show advanced options" in the prompted window and fill in "Joystick" and "Odometry" topic names with "/robotont/cmd_vel" and "/robotont/odom", respectively.
  • Click OK to add the robot.
  • Now you can select the robot from the list and teleoperate it using the touch joystick button.

4. About the driver architecture

Communication protocol

PACKET_ID:ARG1:ARG2:...:ARGN\r\n

Available plugins

plugin_motors

This plugin subscribes to cmd_vel (<:twist>) topic and sends the RS (Robot Speed) packet with lin_vel_x, lin_vel_y, and ang_vel_z arguments to the robot.

plugin_odom

This plugin receives the ODOM packet from the robot and publishes the data on /odom (<:odometry>) topic. This plugin also broadcasts an odom frame via TF.

plugin_power_supply

This plugin is responsible for publishing information about battery levels, current consumption, and other hardware status indicators. The messages are published on /robotont/power_supply (<:powersupply>) topic.

plugin_range

A plugin for ToF range sensor addon. Publishes messages on /robotont/range (<:range>) topic.

plugin_led

A plugin for controlling the led strip addon. The plugin subscribes to /robotont/led_pixel (<:ledmodulepixel>) and /robotont/led_segment (<:ledmodulesegment>) topics, which can be used to set the color of an individual pixel or a segment of pixels.

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/robotont/robotont_driver.git
VCS Type git
VCS Version ros2-foxy-devel
Last Updated 2023-05-10
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
robotont_driver 0.1.0

README

robotont_driver

ROS driver package for robotont.

This package handles low-level communication between ROS and robotont hardware.

CI License

1. Installing and starting the driver

1. Install Ubuntu 22.04

2. Install ROS 2 Rolling 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

4. Build the driver

colcon build

5. Source install files and start the driver

source install/local_setup.bash
ros2 run robotont_driver driver_node

2. Available plugins

plugin_odom

This plugin receives the ODOM packet from the robot and publishes the data on /odom (<:odometry>) topic. This plugin also broadcasts an odom frame via TF.

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/robotont/robotont_driver.git
VCS Type git
VCS Version melodic-devel
Last Updated 2021-02-17
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
robotont_driver 0.0.1

README

robotont_driver

ROS driver package for robotont.

This package handles low-level communication between ROS and robotont hardware.

Build Status License

1. Starting the driver

Real robot

On a real robot, the driver is started automatically via a system service. You can perform several checks to verify that the driver is running properly.

To check the status of the service:

systemctl status clearbot.service

If the driver node is running you should also see '/driver_node' in the output of:

rosnode list

In case any of the above checks should fail try restarting the service (see the robotont_support package) or launch the driver node manually:

roslaunch robotont_driver driver_basic.launch

Fake driver

In case you don't have a real robot nearby, you can run this simple dummy node that subscribes to velocity commands and publishes odometry. This driver does not know anything about physics and performs a simple integration. To start the fake driver with RViz visualization:

roslaunch robotont_driver fake_driver.launch

Gazebo simulation

For a more physics-based experience, the real robot can be replaced with a Gazebo simulation. Please see the robotont_gazebo package for further information.

2. Moving the robot using a keyboard

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

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

  • If teleop twist keyboard is not installed:
sudo apt-get install ros-melodic-teleop-twist-keyboard

  • Follow the printout in the console to learn how to control the robot. Enjoy the ride!

3. Moving the robot using an Android device

  • Find out your computer's IP address:
ifconfig

  • From your Android device, go to Google Play Store and install the ROS Control app.
  • Open the ROS Control app on your phone.
  • Add a new robot using the plus sign in the top right corner and give it a desired name.
  • Insert your computer's IP address into the Master URI field by entering the following:
http://IP_address:11311

  • Click on "Show advanced options" in the prompted window and fill in "Joystick" and "Odometry" topic names with "/robotont/cmd_vel" and "/robotont/odom", respectively.
  • Click OK to add the robot.
  • Now you can select the robot from the list and teleoperate it using the touch joystick button.

4. About the driver architecture

Communication protocol

PACKET_ID:ARG1:ARG2:...:ARGN\r\n

Available plugins

plugin_motors

This plugin subscribes to cmd_vel (<:twist>) topic and sends the RS (Robot Speed) packet with lin_vel_x, lin_vel_y, and ang_vel_z arguments to the robot.

plugin_odom

This plugin receives the ODOM packet from the robot and publishes the data on /odom (<:odometry>) topic. This plugin also broadcasts an odom frame via TF.

plugin_power_supply

This plugin is responsible for publishing information about battery levels, current consumption, and other hardware status indicators. The messages are published on /robotont/power_supply (<:powersupply>) topic.

plugin_range

A plugin for ToF range sensor addon. Publishes messages on /robotont/range (<:range>) topic.

plugin_led

A plugin for controlling the led strip addon. The plugin subscribes to /robotont/led_pixel (<:ledmodulepixel>) and /robotont/led_segment (<:ledmodulesegment>) topics, which can be used to set the color of an individual pixel or a segment of pixels.

CONTRIBUTING

No CONTRIBUTING.md found.