Difference between revisions of "Jetbot ROS"
(→Use the keyboard to control jetbot movement) |
(→Use the keyboard to control jetbot movement) |
||
Line 137: | Line 137: | ||
Open a new terminal to run teleop_key node. | Open a new terminal to run teleop_key node. | ||
+ | |||
+ | After the program is running, input W, S, D, A four keys on the keyboard to control the jetbot to move forward, backward, left, and right. | ||
<pre>$ rosrun jetbot_ros teleop_key.py | <pre>$ rosrun jetbot_ros teleop_key.py | ||
</pre> | </pre> | ||
− | + | You can see the running action from the jetbot_motors node terminal. | |
{| border="1" cellpadding="1" style="width:300px;" | {| border="1" cellpadding="1" style="width:300px;" |
Revision as of 03:30, 23 November 2022
Linux Version
jetson-nx-jp451-sd-card-image
Install ROS
Install ROS melodic
# enable all Ubuntu packages: $ sudo apt-add-repository universe $ sudo apt-add-repository multiverse $ sudo apt-add-repository restricted # add ROS repository to apt sources $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' $ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 # install ROS Base $ sudo apt-get update $ sudo apt-get install ros-melodic-ros-base # add ROS paths to environment $ sudo sh -c 'echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc'
Close and restart the terminal.
Install python and adafruit libraries
# pip should be installed $ sudo apt-get install python-pip # install Adafruit libraries $ pip install Adafruit-MotorHAT $ pip install Adafruit-SSD1306
Add i2c too user
$ sudo usermod -aG i2c $USER
Create the catkin workspace
Create a ROS Catkin workspace to contain our ROS packages.
# create the catkin workspace $ mkdir -p ~/workspace/catkin_ws/src $ cd ~/workspace/catkin_ws $ catkin_make # add catkin_ws path to bashrc $ sudo sh -c 'echo "source ~/workspace/catkin_ws/devel/setup.bash" >> ~/.bashrc'
Close and open a new terminal window. Verify that your catkin_ws is visible to ROS.
$ echo $ROS_PACKAGE_PATH /home/nvidia/workspace/catkin_ws/src:/opt/ros/melodic/share
Install Jetbot_ros
Clone and build the jetbot_ros repo.
# git and cmake should be installed $ sudo apt-get install git cmake # clone the repo $ cd ~/workspace/catkin_ws/src $ git clone https://github.com/waveshare/jetbot_ros # build the package $ cd ../ # cd ~/workspace/catkin_ws $ catkin_make # confirm that jetbot_ros package can be found $ rospack find jetbot_ros /home/nvidia/workspace/catkin_ws/src/jetbot_ros
Test Jetbot
Running the ROS master
Next, let's check that the different components of the robot are working under ROS.
First open a new terminal, and start roscore
$ roscore
Roscore |
Running the Motors
Open a new terminal, and start the jetbot_motors node.
$ rosrun jetbot_ros jetbot_motors.py
Open a new terminal, and check jetbot_motors node is open.
$ rosnode list $ rostopic list
Rosnode list |
Using the Debug OLED
If you have an SSD1306 debug OLED on your JetBot, you can run the jetbot_oled node to display system information and user-defined text.
$ rosrun jetbot_ros jetbot_oled.py
By default, jetbot_oled will refresh the display every second with the latest memory usage, disk space, and IP addresses.
Ros oled |
Use the keyboard to control jetbot movement
Open a new terminal to run teleop_key node.
After the program is running, input W, S, D, A four keys on the keyboard to control the jetbot to move forward, backward, left, and right.
$ rosrun jetbot_ros teleop_key.py
You can see the running action from the jetbot_motors node terminal.
Motors node |