Jetracer Steuerung
- Verschiedene manuelle Steuerungsmodi
- Die verschiedenen Möglichkeiten wie der JetRacer gesteuert werden kann werden im Tutorial Robot Movement Control beschrieben. Hierbei ist zu beachten das beim Befehl "sudo adduser jetbot dialout" welcher den User hinzufügt, das jetbot durch ein jetracer ersetzt werden muss.
- Steuerung per Node Publishing
- Wie im Tutorial beschrieben kann der Roboter anhand einer Publishing Note Befehl für Befehl gesteuert werden. Dies ist zu Beginn nützlich um zu testen ob alle Bewegungsmöglichkeiten funktionieren.
- Steuerung per Tastatur
- Ebenfalls kann der Roboter per Tastatur gesteuert werden. Dieser Modus läuft flüssiger als die Publishing Node, ist aber gewöhnungsbedürftig.
- Steuerung per Joystick
- Der intuitivste Steurungsmodus ist das steuern per Game Controller, hier genannt Joystick. Für diesen Modus muss allerdings erst der Controller mit der Virtualbox verbunden werden. Hierfür muss in den Einstellungen der VM der Controller als USB Input Gerät festgelegt werden. Außerdem muss vielleicht der Input an der Virtualbox von js0 auf js1 geändert werden, da sonst die Maus als Input für die Steuerung benutzt wird. In diesem Tutorial: Assign specific device input paths wird beschrieben wie dies in einer ubunutu Umgebung möglich ist.
- Falls der Roboter nicht geradeaus fährt wenn man eine gerade Bewegung eingibt, könnte es daran liegen das die Räder beim Aufbau leicht versetzt montiert wurden. Dies kann durch eine Änderung des Fahrtwinkels kompensiert werden. In diesem Tutorial: Robot Odometer Calibration wird beschrieben wie man den Winkel einstellen kann. Außerdem nützlich dafür ist dieser Beitrag: Editing Cfg Files in Linux welcher erklärt wie man eine config Datei in Linux bearbeitet.
"Serial User Group" hinzufügen
- Enter the command ls /dev in jetson nano to check whether the driver board is connected to jetbot normally, and whether ttyACM0 and ttyACM1 devices are found [where ttyACM0 is used to communicate with the microcontroller, and ttyACM1 is used to communicate with the radar].
ls /dev
[]
- Enter the following command to add the serial port user group, otherwise, you will not have permission to operate the serial port. Using the configured system has already added permissions, you can skip this step.
ls -l /dev/ttyACM* #View the serial port user group as dialout id -Gn #View the user group that the current user belongs to, the first one is the current user sudo adduser jetson dialout #Add the current user to the user group dialout where the serial port is located
[]
- Enter the command "sudo reboot" to restart, the password is jetbot [Note: The above addition command can take effect only after restarting, and when there is no serial port permission, the robot chassis node will always report an error after booting up].
sudo reboot #restart jetson nano
Roboter Karosserie Knoten öffnen
- Connect SSH to the robot to open the terminal and enter the following command to start the robot master node.
roscore #Start the robot master node
[]
- The following roslaunch command will also automatically start the master node, but the purpose of starting the master node alone is to keep connected to the virtual machine all the time. Otherwise, the master node will be automatically closed when the chassis node is closed, resulting in the virtual machine being disconnected.
- Enter the following command to start the robot chassis node.
roslaunch jetbot_pro jetbot.launch #Start the robot chassis node
[]
- Open the Ubuntu virtual machine terminal and enter the following command in the terminal to verify that the multi-machine communication connection is normal.
rostopic list
- If the content shown in the figure below appears after running the code, it means that the multi-device communication is successful; if it cannot be connected, recheck whether the ip and hostname in the above steps are incorrect or whether they are connected to the same WiFi.
[]
- /cmd_vel is the topic about robot movement and is controlled by the robot.
- /imu is the robot IMU topic.
- /motor/* indicates the actual encoded speed and set the speed of the left and right motors.
- /odom encodes the odometer for the robot.
- /odom_combined is the robot fusion odometer, which is obtained by combining the encoded odometer with IMU data.
Steuerung per Veröffentlichungs Knoten
- After the multi-machine communication is normal, please keep the robot chassis point running normally, and place the car on the ground.
- Open a terminal in the Ubuntu virtual machine and enter the following command to start the topic publishing node.
rosrun rqt_publisher rqt_publisher #Start topic publishing node
[]
- In the pop-up window, please select the topic /cmd_vel, click "+" to create a new topic, /cmd_vel is the topic of controlling the motion of the robot, linear->x indicates the linear velocity of the robot, and angular->x indicates the angular velocity of the robot.
- Change the value of linear.x to 0.5, right-click and select publish selected Once to publish a topic, the robot will move forward 0.5 meters and then stop; if linear.x is changed to 0, angular. z is changed to 3.14, the robot will rotate half a circle.
- Note: The topic we see here is cmd_vel, please select Twist type, and choose other topics, the car may not move.
[]
- Press Ctrl+C to close the topic publishing node.
- Re-open a terminal on the robot side and enter the following command to view the topic information of the car movement.
rostopic echo /cmd_vel #Display /cmd_vel receives the topic
[]