Skip to content

Multi-Agent Mission Concept for Battery Optimized Onsite Swapping Technology (BOOST)

License

Notifications You must be signed in to change notification settings

RIVeR-Lab/BOOST

Repository files navigation

BOOST

Battery-Swapping Multi-Agent System for Sustained Operation of Large Planetary Fleets

Where Software Is

/hubbot_software/

  • The software running on the NVidia Jetson Nano on the HubBot
  • Includes the main ROS2 node running on the HubBot in hubbot_software\ros2_ws\src\py_hubbot_main_controller_node\py_hubbot_main_controller_node

/minibot_hubbot_firmware/charge_controller_firmware/

  • Code running on the Arduino Nano on the HubBot that controls the LEDs and reads battery module continuity and voltage and sends to Jetson Nano over UART.

/minibot_hubbot_firmware/firmwarePioCube/

  • Code running on the STM32F466RE NUCLEO on our Custom PCB.
  • This board is identical on the 2x minibots and on the hubbot.
  • Controls IMU, GPS, motor control, encoders, battery voltage.

/shared/

  • Data shared on the ROS network between HubBot and Minibots

/software/

  • All SLAM and NAV software running on MiniBot for autonomous Docking

Running Things

HubBot Software

  • Run main ROS2 HubBot node:

    ./hubbot_software\start_hubbot_processes.sh

HubBot Firmware

  • Load Firmware onto Charge Controller Arduino Nano.
    • Load this sketch onto the Arduino
    • minibot_hubbot_firmware\charge_controller_firmware\monitor_RGB
  • Load firmware onto STM32F446
    • Load the latest firmware onto the NUCLEO found here:
      • minibot_hubbot_firmware\firmwarePioCube\firmware_releases\hubbot

MiniBot Firmware

  • Load the latest firmware for the respective MiniBot onto its STM32F446RE
    • minibot_hubbot_firmware\firmwarePioCube\firmware_releases

Useful Commands

ros2 topic pub /chatter std_msgs/String "data: Hello ROS Developers"

ros2 topic pub /hub_stat std_msgs/Int32 "data: 4"

rosserial with ROS1

To find the USB Port and get Nucleo board USB into WSL
To give user permission to /dev/ttyUSBx, ttyACMx, and ttySx devices
  • These devices are in the dialout group, so add your user to that group

    $ sudo adduser myusername dialout

Getting Data into ROS1 from MCU
  • http://wiki.ros.org/rosserial_arduino/Tutorials/Hello%20World
  • run roscore in one terminal
    • wsl> roscore
  • Run serial_node.py in another terminal
    • wsl> rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=57600
    • This will get all topics from the MCU.
  • Should now see the topic in ROS1 in another terminal
    • wsl> rostopic list
    • Can echo with wsl> rostopic echo

Using ros1_bridge

  • https://github.com/ros2/ros1_bridge
  • Start ROS1 core wsl> roscore
    • If not done already.
  • Need to source both ROS1 and then ROS2 setup.bash's
  • wsl> ros2 run ros1_bridge dynamic_bridge --bridge-all-topics
    • This will bring in all topics from ROS1 to ROS2 and all topics from ROS2 to ROS1.

teleop twist keyboard

ROSSerial TroubleShooting

[ERROR] [1677681154.605087]: Unable to sync with device; possible link problem or link software version mismatch such as hydro rosserial_python with groovy Arduino

  • Make sure Baud rates are matching
  • Make sure that LOGGING is off on the nucleo so that ONLY ROSserial stuff is is sent out over the serial port connected to the Jetson.

If serial isn't getting to jetson, but is getting to laptop

  • Make sure that the power configuration is correct on the NUCLEO board.
  • i.e. since we are using the STLink as a serial to USB adapter, the STLINK must be powered when the MCU is booted.
  • Make sure that we are powering USB through NUCLEO from the jetson.
    • And if we are using external 5v to power NUCLEO that the correct jumpers are set.

For running ROSserial and ros1_bridge

source ros1 roscore rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=57600

source ros2 source ros1 ros2 run ros1_bridge dynamic_bridge --bridge-all-topics

About

Multi-Agent Mission Concept for Battery Optimized Onsite Swapping Technology (BOOST)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published