The NIU Ex Arca integrated ROS2 package
This diagram is a WIP draft of our rover's data flow. White elements are stuff that we code, and gray elements are stuff that other subteams (i.e. electrical, science task) code.
On the Arduino:
- Flash the Arduino with
Base_Control.ino - Connect either some spare motors (if testing) or the rover's drive train to the Arduino pins according to what is in the
Base_Control.inocode.
Then, on the Jetson Nano:
- Connect the Arduino board to the Jetson Nano using USB, and a controller to the Jetson Nano as well.
- Remote control via the base station and antenna comms is still WIP, for now you'll just have to connect the controller to the rover's Jetson Nano directly.
$ pip3 install pyserial(Python doesn't have theserialmodule by default, which is needed for the serial communication to the Arduino that our ROS2drive_control_serial.pyfile does)$ sudo chmod 666 /dev/ttyACM0(this avoids the issue of "permission denied" when trying to write data to/dev/ttyACM0, the file handle representing the Arduino)- In the root of your workspace:
$ colcon buildto build your workspace - In the root of your workspace, but in a new terminal:
$ source install/setup.bashto source the overlay - In that overlay terminal,
$ ros2 launch ex_arca drive_control.launch.py- If you get any errors, read what they say! It'll help in debugging.
- If you received no errors, you should be able to operate the motors using the joysticks on the controller.
