Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Setting up B3RB with CogniPilot environment software
The full robotics reference design experience on MR-B3RB relies on the Linux NavQPlus companion computer working in concert with the real time controller MR-CANHUBK344. CognipPilot is the preferred framework that works hand in hand with ROS2 to provide a fully robotic vehicle, and sets up and configures the majority of the associated host companion computer, and development PC tools. The CogniPilot system is therefore more than just the Cerebri real time vehicle control module.
Other frameworks including bare metal code can be used on B3RB when used in NXP-CUP or AIM. Those competitions may also just use a subset of cognipilot or even alternative software.
Note however that the combination of Zephyr + Cognipilot is valuable even for when you don't intend to take advantage of the full implementation environment and setup. You can choose to not run Cognipilot Cerebri or other Cognipilot modules.
The development process can be repurposed. Because Cognipilot sits cleanly as an application on top of Zephyr RTOS various aspects of it's implementation such as sensor drivers can be leveraged.
This may be true especially for like NXP-CUP or AIM india systems which are less complex of a robotics implementation.
Follow this section of Cognipilot to prepare your Linux development PC with ROS, Zephyr and Cognipilot development tools : https://airy.cognipilot.org/getting_started/install/
NEW https://brave.cognipilot.org/getting_started/install/
Follow this section of to prepare Cognipilot-Cranium on NavQPlus : https://airy.cognipilot.org/cranium/compute/navqplus/setup/
NEW https://brave.cognipilot.org/cranium/compute/navqplus/setup/
Follow this section of CogniPilot to prepare Cognipilot-Cerebri software on MR-CANHUBK344 : https://airy.cognipilot.org/reference_systems/b3rb/setup/
NEW https://brave.cognipilot.org/cranium/compute/navqplus/setup/
NEW https://brave.cognipilot.org/reference_systems/b3rb/about/
https://airy.cognipilot.org/reference_systems/b3rb/about/
The definitive guide is the CogniPilot website, but you can also follow the additional sub-pages for additional guidance details
After installation, you are ready to use the MR-B3RB.
You can log into the NavQPlus and even into the MR-CANHUBK344 running CogniPilot/Zephyr
You can run ROS SIL or "real hardware" examples using RVIZ or Foxglove as a control station.
The vehicle is capable of being safely armed through several steps and autonomously navigating to a position and pose as specified/pointed to on the control station software.
The developer guide for Cognipilot can be found here: https://airy.cognipilot.org/
NEW https://brave.cognipilot.org
Setting up B3RB with CogniPilot environment software
The definitive guide is the CogniPilot website, these sub-pages are only for additional details and guidance.
Please start with an Ubuntu Linux install 22.04 or newer.
Follow this section of CogniPilot to prepare your Linux development PC with ROS, Zephyr and CogniPilot development tools https://airy.cognipilot.org/getting_started/install/
NEW https://brave.cognipilot.org/getting_started/install/ Ubuntu Linux 24.04
This will:
Setup ssh
keys and gpg keys for git access
install Git
Install ROS2
install Zephyr build tools
and B3RB CogniPilot packages on your host Linux laptop.
prepare a SIL (software in the loop) example
optionally setup for serving the CogniPilot documentation locally
At this point you have configured a Linux PC for development. Follow the remaining subpage steps for guidance to get the B3RB (CANHUB-K3 and NavQPlus ready) to be updated. Note that the next section to refer to in the CogniPilot will be https://airy.cognipilot.org/reference_systems/b3rb/setup/
NEW https://brave.cognipilot.org/reference_systems/b3rb/setup/
Setting up B3RB with CogniPilot environment software
The definitive guide is the CogniPilot website, these sub-pages are only for additional details and guidance.
Follow this section of CogniPilot to prepare Cognipilot-Cerebri on MR-CANHUBK344: https://airy.cognipilot.org/reference_systems/b3rb/setup/
https://airy.cognipilot.org/reference_systems/b3rb/about/
NEW: https://brave.cognipilot.org/reference_systems/b3rb/setup/
NEW: https://brave.cognipilot.org/reference_systems/b3rb/about/
This will:
Update MR-CANHUBK344 with the Zephyr+Cognipilot-Cerebri image. (Cerebri is the application, Zephyr is the RTOS. They are flashed simultaneously using a prepared image.)
You need to follow this guide to correctly flash Cerebri onto the board: Connect J-Link EDU Mini to MR-CANHUBK344 with DCD-LZ adapt board
The following steps must be performed after you have prepared your Linux Development PC.
ros2 launch b3rb_bringup
robot.launch.py
At ths point you are ready to use the MR-B3RB.
You can log into the NavQPlus and even into the MR-CANHUBK344 running CogniPilot/Zephyr
You can run ROS SIL or "real hardware" examples using RVIZ or Foxglove as a control station.
The vehicle is capable of being safely armed through several steps and autonomously navigating to a position and pose as specified/pointed to on the control station software.
When booted, MR-CANHUBK344 should display the following CogniPilot logo and welcome screen on the console.
Errata: If this image doesn't come up when you boot up the board, restart the board several times (by turning it off and on) till this image shows and you can be sure that the board MR-CANHUBK344 is awake and active. Note this issue has been addressed in Zephyr code and should no longer present itself. Please ensure you have the latest version of CANHUBK344 code.
Within a few seconds, the red light on the T1-Ethernet port on both the boards should light up.
The developer guide for CogniPilot can be found here: https://cognipilot.org/releases/airy/getting_started/install
NEW https://brave.cognipilot.org/reference_systems/b3rb/setup/
Setting up B3RB with CogniPilot environment software
The definitive guide is the CogniPilot website, these sub-pages are only for additional details and guidance.
Follow this section to prepare CogniPilot-Cranium on NavQPlus: https://airy.cognipilot.org/cranium/compute/navqplus/setup/
NEW https://brave.cognipilot.org/cranium/compute/navqplus/setup/
This will:
Flash the EMMC on the NavQPlus with the current Linux Image, using uuu using the
USB interface
Establish a console connection using one of the three possible methods (USB-UART, SSH,USB-C Gadget ethernet)
Connect NavQPlus to a Wi-Fi network and establish an alternative console via SSH over Wi-Fi connection
Install CogniPilot Cranium on the NavQPlus (using the script provided)
This command launches the ROS2 with B3RB configuration on the NavQPlus. You should have started the FoxGlove or RVIS application first on your host PC
ros2 launch b3rb_bringup
robot.launch.py
The developer guide for CogniPilot can be found here: https://cognipilot.org/releases/airy/getting_started/install
NEW https://brave.cognipilot.org/reference_systems/b3rb/setup/
Launch Notes for B3RB:
# serial terminal to NavQPlus
screen /dev/ttyUSB0 115200
# Setup wifi hotspot on phone.
# same network as host PC
# show local wifi networks, find the one you want
sudo nmcli device wifi
# for a text interface
sudo nmtui
# Connect NavQPlus Wifi to network
sudo nmcli device wifi connect <network name> password <password>
When Foxglove starts, "Open Connection" and type connect to
ws://b3rb-xx.local:4242
(replace b3rb-xx with whatever your buggy's hostname is)
# SSH login to NavQPlus
ssh user@mrb3rb
#or
ssh user@mrb3rb.local
# FIRST launch Ros2 electrode on host pc
# Then launch Ros2 on B3RB
ros2 launch b3rb_bringup robot.launch.py
If there are multiple vehicles being used at the same time on the same network, then you will also need to set a unique ROS_DOMAIN_ID for on both the host LInux machine and the NavQPlus
edit your file ~/.bashrc
using VIM, NANO or GEDIT
change the line (find with CTRL+W)
export ROS_DOMAIN_ID=xxx
where xxx is a unique number from the other robots
This guide provides instructions for connecting the J-Link EDU Mini to the MR-CANHUBK344 with the objective of flashing the Cognipilot software onto the board.
Make sure you have the following DCD-LZ adapt board
First take the J-Link EDU Mini, you can find more information here: #j-link-edu-mini-debugger
Then, get the J-Link EDU Mini. Then, use the cable with a micro USB connector on one end and a USB Type-A connector on the other end.
Then take the 10-Pin 2x5 Socket-Socket IDC (SWD) Ribbon Cable and connect it to the J-Link EDU mini:
Please, connect the 10-Pin 2x5 Socket-Socket IDC (SWD) Ribbon cable in the following position to the J-Link EDU Mini:
Next, please pick up the DCD-LZ adapt board:
Next, connect one end of the 10-pin 2x5 Socket-Socket IDC (SWD) ribbon cable to the connector on the DCD-LZ adapt board. Ensure that the orientation of the connector corresponds to the one shown in the following image:
The pick the 7 position JST-GH connector:
Finally, connect one end to the DCD-LZ adapt board and the other end of the 7 position JST-GH connector to the MR-CANHUBK344. Please, connect it into the pin showed in the following image:
Now, you just need to connect the USB cable to your development computer and also remember to connect the LiPo battery to the PDB to flash the MR-CANHUBK344, as the board needs to be connected to the power. Then, you can return here to follow the instructions: #prepare-mr-canhubk344-real-time-vehicle-controller
This guide provides instructions for connecting the J-Link EDU Mini to the MR-CANHUBK344 with the objective of flashing the Cognipilot software onto the board
First take the J-Link EDU Mini, you can find more information here: #j-link-edu-mini-debugger
Then, get the J-Link EDU Mini. Then, use the cable with a micro USB connector on one end and a USB Type-A connector on the other end.
Then take the 10-Pin 2x5 Socket-Socket IDC (SWD) Ribbon Cable and connect it to the J-Link EDU mini:
Please, connect the 10-Pin 2x5 Socket-Socket IDC (SWD) Ribbon cable in the following position to the J-Link EDU Mini:
Next, please pick up the Cognipilot debug adapter:
Next, connect one end of the 10-pin 2x5 Socket-Socket IDC (SWD) ribbon cable to the connector on the Cognipilot debugger. Ensure that the orientation of the connector corresponds to the one shown in the following image:
Finally, connect the other end of the 7 position JST-GH connector to the MR-CANHUBK344. Please, connect it into the pin showed in the following image:
Now, you just need to connectConnect the USB cable to your development computer and also remember to connect power to the Buggy (the LiPo battery to the PDB) in order to flash the MR-CANHUBK344, as the board needs to be connected to the power. Then, you can return here to follow the instructions: . #prepare-mr-canhubk344-real-time-vehicle-controller
Connect the MR-Link-MR to the 7 position JST-GH programing connector to the MR-CANHUBK344. Please, connect it as shown in the following image:
Now, you just need to connect the USB cable to your development computer and also remember to connect the LiPo battery to the PDB to flash the MR-CANHUBK344, as the board needs to be connected to the power. Then, you can return here to follow the instructions: #prepare-mr-canhubk344-real-time-vehicle-controller
This guide provides instructions for connecting the MCU-Link-MR to the MR-CANHUBK344 with the objective of flashing the Cognipilot software or any other Zephyr based onto the board.
Either the J-LINK or MCU-Link may be used to program the MR-CANHUBK344
DRAFT-DRAFT-DRAFT Connect the MR-Link-MR to the 7 position JST-GH programing connector to the MR-CANHUBK344. Please, connect it as shown in the following image: <todo> update image to show MR-Link-MR <todo> alternatively connect the 10 pin JTAG/SWD ribbon cable connector <todo update photos below
Connect the USB cable to your development computer and also remember to connect power to the Buggy (the LiPo battery to the PDB) in order to flash the MR-CANHUBK344.
Use this command when programming using the MCU-Link or MCU-Link-MR from Zephyr west tool
west flash --runner pyocd
Setting up B3RB with CogniPilot environment software
The definitive guide is the CogniPilot website, these sub-pages are only for additional details and guidance.
At ths point you are ready to use the MR-B3RB. If you have reviewed the documentation you should now:
You can log into the NavQPlus console and even into the MR-CANHUBK344 running CogniPilot/Zephyr
You can run ROS SIL or "real hardware" examples using RVIZ or Foxglove as a control station.
The vehicle is capable of being safely armed through several steps and autonomously navigating to a position and pose as specified/pointed to on the control station software.
OPTIONAL: When booted, if you have a console connected, MR-CANHUBK344 will display the following CogniPilot logo and welcome screen on the console.
Within a few seconds, the red light on the T1 Ethernet port on both the boards should light up.
(The definitive guide is on cognipilot.org !! copied here for convenience only)
From the command line run
Login to the NavQPlus using ssh or serial console.
Ensure the NavQPlus and Host PC are on the same network
AFTER starting ROS on the Host PC, THEN on the NavQPlus run
Sometimes you just want to start over. It's ok, we all have days like that. I Fyou need afresh cognipilot start, and want to be extra sure there are no leftover dependencies or files you dont' want etc then follow these steps. Keep in mind this is going to erase local changes you may have made to cognipilot files. Note them in advance if you want to re-do the changes afterwards. (for example you may have disabled the battery voltage check in <todo> xxx.conf)
Then start again with the
or this link
The instructions above will take care of Gazebo install also. If you happen to know you are stuck on an old version of Gazebo you may want to just try this first. The example below is where gazebo "garden" (gzgarden) is installed, but you want gazebo "harmonic"
ros2 launch electrode
rviz2:=false
The MCU-LINK-MR is an updated version of the MCU-link which includes debug interfaces for robotics including DCD, DCD-LZ, Pixhawk debug large and small, and USB-C to UART console. PyOCD method has to be used when using a or MCU-Link-MR
More detailed official documentation for this is available here. See for default runner to use can be set Then, you can return here to follow the instructions:
The developer guide for CogniPilot can be found here:
NEW