Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The MR-B3RB should look like this unit after opening the box.
The lower chassis comes partially assembled with the side skirts attached, the side plastic attached, the PDB partially wired, and the LED lighting installed and wired. Remove screws that hold on the side plates and also the screws that hold on the top plate. The screws holding the side skirts and top plate on top will be replaced with Thumbscrews . KEEP these M3x5mm screws for attaching the MR-CANHUBK344 to the top plate later
Use a hex screwdriver or Allen Key and remove all top screws securing the top plate to the metal frame and carefully set them aside.
Please double check that the black side skirts are installed flush and correctly, like in the pictures.
Please excuse our "dust" while this gitbook is under construction. Supportive feedback is welcome: iain.galloway@nxp.com
Welcome to the MR-B3RB Assembly Guide!
Are you ready to embark on an exciting journey into the world of robotics? Meet MR-B3RB – your very own robot companion that you can build from scratch! Whether you're a seasoned tech enthusiast or just starting out, this guide will walk you through every step of the way.
What is MR-B3RB?
MR-B3RB stands for "Mobile Robotics - Buggy 3 Revision B." It's an educational mobile robotics platform designed to ignite your curiosity and expand your understanding of robotics, programming, and engineering. By assembling MR-B3RB, you'll not only gain hands-on experience but also develop problem-solving skills and technical knowledge that are essential in today's tech-driven world.
Why Build MR-B3RB?
Hands-On Learning: Dive into the practical aspects of robotics, electronics, and programming.
Skill Development: Sharpen your critical thinking, creativity, and technical skills.
Fun and Engaging: Experience the joy of building and bringing your own robot to life.
Community Support: Join a community of like-minded individuals passionate about technology and innovation.
What You'll Find in This Guide
Step-by-Step Instructions: Detailed, easy-to-follow steps to assemble and program your MR-B3RB.
Visual Aids: Diagrams, images, and videos to guide you through each stage of the process.
Troubleshooting Tips: Solutions to common issues to ensure a smooth assembly experience.
Additional Resources: Links to materials, tools, and further learning opportunities.
So, what are you waiting for? Let's get started on this exciting adventure and bring your MR-B3RB to life
Also take a look at some of our other GitBooks:
NavQPlus: i.MX 8M Plus companion computer for mobile robotics
MR-B3RB: NXP Buggy3 Rev B platform using NavQPlus and MR-CANHUBK344
RDDRONE-BMS772: Battery management system (3-6 cells).
RDDRONE-T1ADAPT: 100BASE-T1 ethernet adapter.
The PDB (Power Distribution board) is where both power enters from the battrey , and also provides a number of connector "translations" to match the motor and LED lighting. Specialized connectors on the motor and encoder to translate to the Dupont-style or standard DroneCode connector pinouts. It should be noted that the block diagram above does not show ALL the power distribution connections, which are as follows:
Battery input through a fuse
Battery voltage and current measurement through the INA226
3x Battery voltage outputs on 5 pin JST-GH for NavQPlus, MR-CANHUBK344, Extra
5V regulating supply for LED lights, and powering PWM servo rail on MR-CANHUBK344 and therefore the Servo itself.
PWM signals are consolidated into a single XHDP connector for ease of connection.
The GPS combines UART, I2C for Compass, and GPIO for switches, LED, and Beeper into a single large DroneCode standard connector.
The DCD-LZ interface simply combines SWD and a UART on a single JST-GH Dronecode connector. Depending on your kit you may have any of the following debug adapter boards:
FTDI USB-UART cable and adapter for UART/Console on the NavQPlus
FTDI USB-UART cable + DCD-LZ adapter for MR-CANHUBK344 DCD-LZ interface
In some systems you will find NeuralProbe board with USBC interface and connectors for UART/Console AND DCD-LZ interface. This board includes a USB-UART converter and also includes a button that will toggle the RST pin on SWD/JTAG interface. There is a 3rd interface on this board for Pixhawk V6X debug+uart connectors (not used here, used with NXP MR-VMU-RT1176)
Instructions for the NXP MR-B3RB.
These instructions are now updated for the production version of the MR-B3RB. If you have a pre-production version, please see ,
The following pages describe the mechanical assembly of the MR-B3RB-M version. The -M version of MR-B3RB includes the -MUK mechanical upgrade kit consisting of:
Front and rear plastics (for LED covers and angles front and rear covers)
Lidar arch plate metal and metal top cover.
To install the -MUK (Mechanical Upgrade kit) you will need to first:
Remove the plastic clips that hold the top metal plate in place and
Replace them with the side skirt plastic.
Then install the front and rear plastics as shown in the following assembly videos.
(This will change in production version. Side skirts will already be present in base version)
You may have a -S version of the kit which doesn't include these extra components, in that case just mount the NavQPlus and MR-CANHUBK344 in a similar way as shown in the assembly videos.
There is a plastic bracket included with the NavQPlus kit that can be used to mount the camera in the correct location at the front.
: Quick reference and index for all our mobile robotics solutions.
: Drone & rover dev. kits, with FMUK66 vehicle management unit.
: Autonomous model car competition for students.
: Small form factor CAN-FD to 100BASE-T1 ethernet bridge.
: CAN-FD node for mobile robotics applications.
The gears are adjusted at the factory and this should not need to be done on a new B3RB. However over time it may be that they need adjustment. Follow this procedure to re-adjust the gear meshing. Diagnose Motor Gear Meshing Issue
1. Rotate the Wheels Gently: Start by gently rotating the wheels of the B3RB that the motor is driving.
2. Listen Carefully: Listen to the sound of the gears as you rotate the wheels. Ideally, the gears should mesh smoothly without any grinding or excessive noise.
3. Feel for Resistance: As you rotate the wheels, feel for any resistance or unevenness. This could indicate that the gears are not meshing properly.
Adjust the Gear Mesh
1. Locate the Motor Mounting Bracket: Identify the motor mounting bracket where the motor is attached to the chassis or frame of your device.
2. Loosen the Adjustment Screws: Typically, there are two screws at the front of the motor mounting bracket that secure the motor in place. Use an appropriate screwdriver to gently loosen these screws. You don’t need to remove them completely, just enough to allow slight movement of the motor.
3. Adjust the Motor Position: Apply mild pressure to the motor in the direction that will improve the gear meshing. This usually means pushing the motor closer to the gear or slightly adjusting its angle to ensure the teeth of the gears are aligned properly.
4. Check and Tighten: After adjusting, rotate the wheels again and listen for any improvement in the gear meshing. Once satisfied with the adjustment, carefully tighten the screws back into place to secure the motor in its adjusted position.
Ensure the metal top arch is oriented the correct way up and the Lidar is mounted facing the front. A common mistake is for the top arch to be flipped upside down, resulting in the LIDAR facing the back. Check the direction of the LIDAR by looking at the arrow on top.
There is a orange or black 3d printed plastic standoff post which also acts to protect the cable. The file will also be provided in 3D Printed parts page See image below
The holes in the lidar standoff can be used to store some of the thumbscrews when not in use
MR-CANHUBK344 is the real time controller board for the robot. After successfully attaching the NavQPlus, the next step is to install the MR-CANHUBK344 evaluation board.
The MR-CANHUBK344 board should be attached in the highlighted holes of the following image. Reuse the M3x5mm screws that were previously removed from the side skirts. M3x5mm screws should be used to screw in from the bottom side.
Be cautious to not squeeze the wires attached to the NavQPlus!
Upon completion, the entire assembly should appear as follows:
The XT60 battery connector is installed at the factory, ensure that it pivots freely as shown in the video below.
MR-B3RB is a kit of kits
MR-B3RB is short for Mobile Robotics - Buggy3 Revision B. This is the second revision to a robotic vehicle called . Some people didn't like calling a product "buggy". So even though Buggy3 is a brave name, we decided to instead make it MR-B3RB as it is a nice and friendly robot like R2D2.
We took lessons learned from that platform and applied them as an upgrade for 2024.
The upgrades of the MR-B3RB are:
Uses the same rugged metal base RC car, with readily available replacement and upgrade parts
No need to change the steering servo
Upgraded BLDC motor with gear reduction, integrated ESC (motor controller) and quadrature encoder output that can be used for vehicle odometry
Metal upper chassis that can be removed as a module
Power distribution board with additional connector matching and power supply for boards and servos.
Removeable mounting plate for companion computer, real time processors, communications radios and any other add on components
RGB addressable lighting
Optional upgrade to plastic sides, front, rear and lidar arch mount
Optional GPS / remote Magnetometer/ arming button
Currently this is the PRE-Production version, there will still be some updates coming to improve the modularity of the top plate, and provide additional mounting for user added 3d printed components.
The camera housing included with the NavQPlus mounts to the front "GoPro" style mount on the front plastic:
The camera flex cable should come out the back of the NavQPlus and loop over top of it. Then route under the lower edge of the front bracket. and up into the camera module. The final setup should look like this:
Screw the front and rear plastic to the top plate using two M3x5 screws from the bottom
The camera flex cable should already be attached to the front plastic.
The Quadrature decoder (QDEC) cable connects from PDB to MR-CANHUBK344. The actual quadrature signals are coming from the encoder on the motor itself. The PDB is used to interface between the different cable types. This signal provides information on how many revolutions, and therefore how far, the robot has travelled and is used in the control system as an input.
Pre-production MR-B3RB must use the special QDEC cable with the orange markings. There will be an updated PDB V2 which corrects this issue and allows for a standard cable to be used.
This cable is crucial for calculating the odometry, speed and direction of the robot car. The cable should look like this:
One end of the cable must be attached to the QDEC out pin on the PDB:
And the other end must be attached to the following pin on the MR-CANHUBK344:
The MR-B3RB is versatile and can support several network wiring configurations. There are also several optional connections. This section will serve to show the BASELINE connections. We will also attach cables that may not be used, but should stay with the B3RB for future expansion
Provide power to the NavQPlus and MR-CANHUBK344
Connect the two with T1 Ethernet
Attach the LIDAR to the NavQPlus
Attach the SERVO and Motor Control PWM to the MR-CANHUBK344
Quadrature encoding from the motor/PDB to the MR-CANHUBK344
Connect the RGB LED lighting
Have debuggers and consoles attached
Optionally plug in unused RC-PWM input
Optionally connect CAN-FD cables, which could be used for peripherals and attachments
(Optionally) connect a serial console from the MR-CANHUBK344 to the NavQPlus <<TODO - add link to section that removes the jumper on the PDB. Add PDB wiring section>>>
The final setup with al the established connections should look like this: <<<TODO UPDATE PHOTOS FROM HERE ON >>>
A closer view on the connection on MR-CANHUBK344:
And in the NavQPlus:
Please follow the steps 3a and 3b for the detailed explanation on these connections.
Wiring instructions will be demonstrated using images and GIFs for clearer visualization of the process.
The RGB LEDS communicate using a modified SPI type that is unidirectional. The power for the LEDs is supplied by the PDB, and the SCL SDA lines attach to a SPI port on the MR-CANHUBK344
You need to have mounted first the LED lights and covers. This step has been explained in this section:
First, we'll show hot to connect the LEDs cables from the LEDs panels to the PDB and the MR-CANHUBK344.
Use the 4-pin cable with a protective covering to connect from the front to the rear LED assembly ends.
Connect the rear LED to the PDB (Power Distribution Board) and the MR-CANHUBK344.
The following image shows the LED lights setup with the left side representing the rear and the right side indicating the front of the car.
The following images show a zoomed vision of the wiring:
The remaining pin is this one:
That must be connected on the following pin of the MR-CANHUBK344:
If you have correctly followed these steps the wiring setup of the LEDs cables should be finished.
The NavQPlus and MR-CANHUBK344 communicate to each other using 100Base-T1 Two wire ethernet .
Connect the ethernet cable between the NavQPlus and the MR-CANHUBK344.
Zip Tie the cable at both ends, and tuck it under the top plate.
Note the specific side notches to use.
Use a piece of tape to hold it neatly out of the way under the plate
You must use the screw and bolt that included along with the original camera mount.
The GPS module is primarily used to provide the Magnetometer, sound and SAFETY button for the system. Not all systems will use the GPS localization functionality. The software however does injest the data and can be used for navigation outdoors.
An ARMING board is also included in the kit and can be used with alternative software. This can provide the safety button and sound functionality, but not the Magnetometer needed for robotics navigation using Cognipilot. An updated ARMING board is in progress that includes the magnetometer is in progress. The decision was made to use the GPS module in the meanwhile as it was cost effective.
You need to add first the M10 GPS mount to the metal frame. This is explained in the section Install M10 GPS Module
The M10 GPS cable attaches to the MR-CANHUBK344 as shown below
The kit may include an ARMING board and/or a GPS module. In addition to being used for GPS, the it does also include a arming/safety switch and a beeper. Generally if you have a GPS, it is preferred to use that rather than the ARMING board.
NOT all kits include the GPS module. Notably the NXP-CUP car kit will not. Instead use the PX4ARMINGBOARD BOARD and stick it down in a convenient location.
The arming board will provide the same beeper and arming buttons. It does not (currently) include a compass component.
If provided in your kit, please install the GPS and GPS post mounting, The the pieces needed are listed in the WITB GPS Module page.
Important notes: 1) Install the base plate with the clamping screw pointing either forward-right or forward-left. This will allow you to loosen/tighten even when the plastic rear piece is installed.
2) install the GPS so that the arrow is pointing forward on the B3RB
3) Zip tie the cable so that it stays tight against the carbon fiber mounting tube. This is to minimize interference with the LIDAR beam
4) Don't tighten down the mast clamping screws, you will need to remove the GPS top or the GPS and the MAST in future steps. Tighten them only enough so the parts can still wiggle and be removed.
There is a set of screws that comes with the GPS unit. Use the 4 longer screws and Nylock Lock Nuts to attach the base mount.
It should be placed in this furthest back position:
Attach the mounting mast rod and fasten it with one of the smaller two screws left. At this time keep the screws only loosely tightened. Attach the top mount with the remaining screw. Keep it only loosely tighened as well. It should look like this when completed:
Locate the M10 GPS and the 3M double tape.
Attach the double tape in the center of the top mount.
Carefully align the GPS in the center of this tape. Ensure the arrow on the GPS module is facing forward. The cable of the GPS should be zip tied so it stays very close to the GPS mast in order to not obstruct the LIDAR sensor.
Now mount the NavQPlus and the MR-CANHUBK344 to the metal top plate. Follow the steps in the next two sections. The final setup will look like this:
Make sure you have first installed the XT60 panel mount adapter to XT60 connector with cover before going through this step: Step 1b: Adding XT60 extension Mount
The cable shown below is NOT USED in B3RB. Instead connect the 5 pin power cable to the corresponding point on the PDB
Connect the l5 pin (4 wire) JST-GH power cable to the NavQPlus Power input:
This is also explained here: #baset1-ethernet-wiring-between-navqplus-and-mr-canhubk344
<TODO> refer to the mounting of the LIDAR base
The cable necessary for connect the NavQPus to the LIDAR-STL-27 is the number one in WITB Cables and Screws.
A closer view of this cable:
The Lidar used is the following:
You should connect the smaller end of the cable to the Lidar and the bigger end to the UART3 Serial port of the NavQPlus:
Thse are all the connections available for NavQPlus:
<TODO >
note on CAN
note on console
note on Ethernet
After connecting all the cables, proceed to attach the metal board frame to the robot car using the screws you removed at the beginning of this tutorial:
Please attach the plastic shield with the camera housing to the robot's front using 1cm M2.5 screws, which are located in this box provided:#m2-m2.5-m3-screw-fastener-kit-for-wltoys-144001-1-14-rc-s.no.-25.
For reference, a picture of the screws is displayed here: <<<TODO - these are not the correct screws. They should be flat head (tapered head> screws. Take picture and add here>>>
The mounting must look like these pictures:
And the attach the back plastic shield of the robot with the same screws:
<<<<TODO - update the pictures below. The orientation of the LIDAR is backward!!!>>>
Attach the arch metal upper plate and the Lidar with 4 of the screws M3 X 0.5 X 10MM with socket head, labelled with the number six in the following picture:
It should look like this:
And the connection to the NavQPlus, as explained in #lidar-connection is depicted in this image:
METAL UPPER
LIDAR,
FINAL TOUCHES AND STICKERS
There are two locations where on board batteries could be located, inside the "mezzanine" level of the frame and on the lower side opposite the motor side of the lower chassis.
Since any battery in the mezzanine level will be challenging to remove and likely could only be charged in place, we will only be referring to the removeable battery location on he lower chassis.
An alternative rotating swing out battery cable extension has been prepared and can be 3D printed. If you have access to a 3D printer, it is preferable to use this cable mount instead of the one provided.
The exact method of securing the battery is dependent on the user preferences.
There is a battery strap included in the kit. This could also be used to strap to the upper/mezzanine level of the metal frame.
You may wish to remove the small plastic battery tray frame that is already installed in the kit in order to make more space.
A foam piece can be used to wedge between the underside of the battery and the lower chassis in order to prevent any movement. This wedges the battery "up" against the underside of the mezzanine level.
3D printed pieces may be designed also to hold the battery in a preferred way.
Typically we are using an off-the-shelf LiPo battery pack similar to what is used in RC airplanes and Quadcopters. In addition to ensuring the battery chosen fits the compartment area, the battery should have the following specifications:
LiPo 3s (Three Cell) 12V nominal voltager (10-14V)
2000-3000mAh
XT60 connector with balance leads
Dimensions
A) 75mm L x 34mm W x 26 H (short and stubby)
B) 100-110mm L x 35mm W x 22-26mm H (longer format)
Below are links to some example batteries. THIS IS IN NO WAY an endorsement of these specific batteries, only a link so you can see more detail about the types of similar batteries that could be used:
You will find that "Stubby/Shorty" batteries such as listed below will give you more working space. However longer thinner batteries have also worked well
Zeee 3S 2200mAh Lipo Battery 11.1V 50C Shorty Pack Battery with XT6...Zeee 3S 2200mAh Lipo Battery 11.1V 50C Shorty Pack Battery with XT60 Plug for RC Car Truck RC Vehicles Boat Drone RC Airplane Quadcopter Helicopter FPV Racing Hobby Models(2 Pack)
HOOVO 3S Lipo Battery 2200mAh 80C 11.1V Shorty Lipo Battery Pack So...HOOVO 3S Lipo Battery 2200mAh 80C 11.1V Shorty Lipo Battery Pack Softcase with XT60 Connector Compatible with Drone RC Airplane Helicopter Quadcopter FPV RC Car,2 Pack
You must use a LiPo battery charger to safely charge the battery. There are very inexpensive ones available that will charge using the cell termination connectors at the expense of them being quite slow to charge. Many other types of chargers exist. When choosing a charger consider that this is a safety issue, and overcharging or improperly charging can be dangerous and result in a fire.
There are many excellent LiPo battery chargers available. ISDT makes several high end charges like the following: (This is an example, and not a specific recommendation)
The top cover doubles as a work stand. This will keep the wheels up of the gound and can be useful while testing. You may want to put some soft tape or foam on the underside of the buggy chassis in order to avoid possible scratches on the top cover.
B3RB- Base Mechanical Frame Assembly. Assembling the kit mechanically
This assembly is performed by the manufacturer. It is included here for completeness.
Note the MR-B3RB-BMF (Base Mechanical Frame) includes some M3 screws in the side plates that will be replaced with thubscrews in the full kit.
Link: https://a360.co/4bVC8pm
MR-B3RB units have a power monitor built into the PDB board. This will tell you the total pack voltage and individual cell voltage. It will alarm when the cell voltage goes too low.
Press the button on top to set the ALARM voltage to 3.2volts The Battery monitor is connected as shown below
This section details the assembly process for the small version of MR-B3RB. This version comprises the base mechanical frame, the NavQPlus board equipped with the integrated camera, a mounting piece designed for the camera, as well as the MR-CANHUBK344 board and its Adap board.
The assembly of this smaller version is notably simpler. The primary steps involve mounting the NavQPlus and the MR-CANHUBK344, as explained in this section of the B3RB-M assembly guide Step 2: Mounting the boards to the metal frame. Note that there are certain parts of the tutorial that do not require your attention:
Do NOT Remove the Camera Mount from the NavQPlus: It is essential to retain the camera mount on the NavQPlus.
GPS Module and LiDAR Standoff Installation: You do not need to install the GPS module or the standoff for LiDAR stability.
The step 2e is also not necessary: Step 2e: Attach front and rear plastic to top plate
Wiring Tutorial: Follow the wiring tutorial( Step 3: Wiring), but be aware that you will not be using LED, GPS, or LiDAR cables. However, the QDEC cable, the Ethernet connection between the NavQPlus and the CANHUBK344, as well as the PWM and power cables, remain unchanged.
Do NOT remove the camera mount form the NavQPlus:
After following these instructions, proceed to mount the camera to the metal frame:
Utilize the set of screws provided in the NavQPlus box.
Attach the camera mount in the specified position:
Upon completion of these steps, the B3RB-S version of the robot should resemble the following:
This section is for items that may be useful for the end user, but are part of the manufacturing and kitting before the user gets a B3RB. They are not part of the normal assembly process.
This checklist is primarly for units prepared to be assembled and shipped for trainings
This checklist is prepared for training units that will be shipped elsewhere This is a checklist for use if you have already assembled a unit and need to ship it to another location. It is to ensure the recipient has all the components needed, and the kit will be functional.
See the photos of these items lower in this page
Add XT60 unsoldered male connector (Temporary addition)
JLINK debugger + DCD-LZ + FTDI Cable (note console/debug cable attached to buggy)
Serial console cable for NavQPlus. FTDI + adapter board (Console cable attached to buggy)
Cognipilot Neuralprobe
Battery alarm
IX Industrial Ethernet to RJ45 cable
Put them in a single bag.
CogniPilot is a new opensource vehicle control software that sits cleanly on top of the Zephyr RTOS. This will be used as the default real-time vehicle controller software framework on MR-B3RB kits.
EVEN when not using the full capability of CogniPilot, the framework still includes many software modules, high level drivers, communications methods and related PC tools and setup that makes other less demanding uses (such as NXP-CUP) much easier. The framework is there and can be used as much or as little as needed.
Zephyr RTOS has build targets for MR-CANHUBK344 and MR-VMU-RT1176 which can be used as part of the real-time controller and IMU for MR-B3RB. In various versions of MR-B3RB kits these boards may already be included.
CogniPilot's claim to fame is that the control system software component is synthesized as a module from popular control software called Casadi. Casadi is popular with control systems engineers and researchers and allows the decoupling of the control theory, simulation and mathematical proofs from the actual code that implements the particular controller math. This approach helps with ensuring safety and robustness, while also supporting rapid innovation
CasADi is an open-source tool for nonlinear optimization and algorithmic differentiation.
It facilitates rapid — yet efficient — implementation of different methods for numerical optimal control, both in an offline context and for nonlinear model predictive control (NMPC).
CogniPilot represents the name of the group of software modules making up the vehicle control system. More details of what each of the modules does is available on the project website.
Cerebri represents the CogniPilot control-system software module and is named similarly to a human brain cerebellum, which The synthesized code from CasADi, or code representing the control theory-module for the particular vehicle intended, plugs into CogniPilot's Cerebri module. The control system for the vehicle type is a swappable module, it can define control functions or approaches that relate to a ground vehicle vs a multicopter, vs a winged vehicle. You then separately provide a hardware description file for the specific vehicle characteristics.
One of many control theories could be used to control an Ackermann steering car. The specific control theory is built in CasADi. Code is then synthesized and put into Cerebri for execution. The control theory was for a generic Ackermann vehicle type. The hardware description file defines the power of the motors, the size of the vehicle and wheels, the placement of all these wheels. You could theoretically have an Ackermann vehicle where the steering is misaligned with the drive wheel thrust. This same control software works for a passenger car or a toy car since the vehicle size and power that gets defines independently. A different synthesized control theory would be loaded to control a multicopter. The hardware definition would control the arm lengths, the number and orientation of the motors, and the thrust from the motors.
There is much more detail and information about the design and structure of CogniPilot here: https://www.cognipilot.com
The developer guide for CogniPilot can be found here: https://cognipilot.org/releases/airy/getting_started/install
Cognipilot software module operate across multiple processors in order to form a complete system:
CogniPilot Electrode - Runs on PC host groundstation with Linux/ROS2
CogniPilot Corti and Nav2 - Runs on NavQPlus Embedded companion computer running Linux/ROS2
CogniPilot Synapse - Bridge over Ethernet, running on CANHUBK344 and NavQPlus
CogniPilot Cerebri - CANHUBK344 real time control MCU running Zephyr with ZROS nodes and topics
Wiring instructions will be demonstrated using images and GIFs for clearer visualization of the process.
You need to have mounted first the LED lights and covers. This step has been explained in this section: #assemble-led-light-and-covers
First, we'll show hot to connect the LEDs cables from the LEDs panels to the PDB and the MR-CANHUBK344.
Use the 4-pin cable with a protective covering to connect from the front to the rear LED assembly ends.
Connect the rear LED to the PDB (Power Distribution Board) and the MR-CANHUBK344.
The following image shows the LED lights setup with the left side representing the rear and the right side indicating the front of the car.
The following images show a zoomed vision of the wiring:
The remaining pin is this one:
That must be connected on the following pin of the MR-CANHUBK344:
If you have correctly followed these steps the wiring setup of the LEDs cables should be finished.
This cable is crutial for calculating the odometry, speed and direction of the robot car. The cable should look like this:
One end of the cable must be attached to the QDEC out pin on the PDB:
And the other end must be attached to the following pin on the MR-CANHUBK344:
Second, we'll show how to connect the ethernet cable between the NavQPlus and the MR-CANHUBK344.
The PWM cables that come from the MR-CANHUBK344 board to the Power Distribution Board should look like this.
The cable color code is as follows:
Ensure the cable is oriented so that the white PWM signal is connection the port labelled (S) on the MR-CANHUBK344. This is "inboard" on the PCB. The black ground wire will be closest to the outboard edge of the PCB.
The PWM cable that connects to the servo must be connected to PWM0 of the MR-CANHUBK344 as depicted in the following GIF:
The PWM cables that correspond to the motor throttle (PWM 1) and motor ENB (PWM2) must be connected on the following pins on the PDB:
The other end of the cables must be located in this position of the MR-CANHUBK344:
The following GIF shows the connection of the three cables:
Note that an extension cable is used for the servo PWM. The cable on the servo is the alternative coloring as shown in the table above.
The last cable to connect is the EXTRA LONG power cable from the MR-CANHUBK344 to the Power Distribution Board which looks like this. The normal length power cable can be similarly connected to the NavQPlus
This is how it must be connected to the PDB:
And the other end must be connected to this pin on the MR-CANHUBK344
The following picture depicts the connections in an animated way.
You need to add first the M10 GPS mount to the metal frame. This is explained in this section: #install-m10-gps-module
This is the M10 GPS
And this is all the cable connections available for now.
The screws below and nylon locking nuts are included in the LIDAR box. Use these to attach the LIDAR to the LIDAR Arch.
Attach the arch metal upper plate and the Lidar with 4 of the screws M3 X 0.5 X 10MM with socket head, labelled with (6) in the following picture:
<<<TODO - move the lidar connection link details to this single page. Delete the other references>>
Locate the DUAL LOCK type mounting tape eliminating the need for the procedure below and screw fastening. This will also elevate the NAVQPLUS boards slightly so that Ethernet and USB will have better clearance. We highly recommend you just use some DUAL LOCK Velcro instead of screwing the NavQPlus to the metal frame.
Alternative mounting using screws
The kit includes DUAL LOCK type mounting, eliminating the need for the procedure below and screw fastening. This will also elevate the NAVQPLUS boards slightly so that Ethernet and USB will have better clearance. We strongly recommend you just use some DUAL LOCK Velcro instead of screwing the NavQPlus to the metal frame.
An alternative method of mounting is to use the provided M3 screws to securely attach the board's corners to the following position in the metal frame:
Screw them in from the bottom side. It should look like this:
Use a ziptie to secure the power cable (4 wire cable with 5 pin JST-GH), and route the CAN cables down and underneath as shown below.
After successfully attaching the NavQPlus, the next step is to install the MR-CANHUBK344 evaluation board.
There are two 5 pin JST-GH cables that provide battery power to the MR-CANHUBK344 and the NavQPlus. They are 5 pins, with no wire in the center position. Two wires are battery voltage+ and two wires are battery voltage-. Be sure to limit the voltage applied at the battery to <20V or the specified ratings for any boards plugged in. The nominal battery voltage is expected to be ~12V,
NavQPlus and MR-CANHUBK344 will be soon updated to ship with longer power cables.
Connect is the EXTRA LONG power cable from the MR-CANHUBK344 to the Power Distribution Board.
The normal length power cable can be similarly connected to the NavQPlus
ZIP TIE the cables to the edge of the top plate and make them neat.
These cable connect to the 5 pin JST GH on the PDB. Either connector is ok. They are both the same.
And the other end must be connected to this pin on the MR-CANHUBK344
The following picture depicts the connections in an animated way.
This is the M10 GPS
And this is all the cable connections available for now.
The MR-CANHUBK344 sends PWM signals to the Motor controller and also to the Servo. These are standard RC Model type PWM connections. It is important to get the positions correct on the header as the PWM signal timings are different between the motor and the steering servo. Also note that the steering servo gets powered from the +5V that is PROVIDED by the motor PWB connection on the PDB board.
There is a PDB V2 board that will replace these three individual cables with a single integrated cable and an adapter board. Please look for this upgrade in the near future.
The PWM cables that connect between the MR-CANHUBK344 board and the Power Distribution Board should look like this. Two of them are Female-Female and one is Male-Female.
The cable color coding is as follows:
The PWM cable must be oriented so that the white signal wire is connection the pin labelled (S) on the MR-CANHUBK344.
Please be extra careful that the PWM cables are wired correctly and with the correct polarity. Damage to the board could result from incorrect connection.
The wite wire should be "inboard" on the PCB. The black ground wire will be closest to the outboard edge of the PCB.
The PWM cable that connects to the servo must be connected to PWM 0 of the MR-CANHUBK344. This is the PWM header CLOSEST to the side of the board with the CAN connectors.
This is depicted in the following GIF:
<<TODO>> make it more clear which cable is which. There is also a debug procedure that can be added. IF the motor starts running immediately on power up, then PWM 1 and PWM 2 need to be swapped. Confirm - This is when only ONE of the PWMs are connected.
The PWM cables that correspond to the motor throttle (PWM 1) and motor ENB (PWM2) must be connected on the following pins on the PDB:
The other end of the cables must be located in PWM 1 and PWM 2 positions of the MR-CANHUBK344:
The following GIF shows the connection of the three cables:
The last cable to connect is the EXTRA LONG power cable from the MR-CANHUBK344 to the Power Distribution Board which looks like this. The normal length power cable can be similarly connected to the NavQPlus
This is how it must be connected to the PDB:
And the other end must be connected to this pin on the MR-CANHUBK344
The following picture depicts the connections in an animated way.
This is the M10 GPS
And this is all the cable connections available for now.
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 :
NEW
Follow this section of to prepare Cognipilot-Cranium on NavQPlus :
NEW
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.
B3RB- Base Mechanical Frame Assembly. Mounting the base frame on the car.
Normally the MR-B3RB-BMF (Base Mechanical Frame) will be pre-assembled. Therefore, these instructions will NOT be needed and are included only for completeness.
Note the MR-B3RB-BMF (Base Mechanical Frame) uses plastic clips and screws to hold the top circuit board plate in place. When preparing the kit MR-B3RB-M, these side clips will be discarded and replaced with larger plastic side plates. The side plates are part of the MR-B3RB-MUK (Mechanical Upgrade Kit) components including plastic front, rear, side and metal top and side covers.
Gather the buggy aluminum cage, the PDB board and the PDB mount.
Wire color | Signal | Alternative Color |
---|---|---|
The connection to the NavQPlus is shown above, and also explained in
You need to add first the M10 GPS mount to the metal frame. This is explained in this section:
Note that an extension cable is used for the servo PWM. The cable on the servo changes to the the alternative coloring as .
Wire color | Signal | Alternative Color |
---|
You need to add first the M10 GPS mount to the metal frame. This is explained in this section:
Follow this section of CogniPilot to prepare Cognipilot-Cerebri software on MR-CANHUBK344 :
NEW
NEW
The developer guide for Cognipilot can be found here:
NEW
Link:
Link:
Mount the PDB to the cage using the plastic mount and 8 M3x5 screws. Make sure you install the board with the right orientation, as the XT60 connector needs to be on the front of the car.
Mount the subassembly to the car frame using 4 M3 F-F standoffs and 8 M3x5 socket head cap screws.
Install the 8 nut housings to the frame using an M3 locknut and a M3x8 screw per housing.
Install the 2 LED boards using two M3x8 screws and two M3 locknuts per board.
Install the top frame using 8 M3x5 screws.
White
PWM
Yellow
Red
+ 5V
Red
Black
(-) GND
Brown
White | PWM | Yellow |
Red | + 5V | Red |
Black | (-) GND | Brown |
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 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/
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/
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
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"
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
This section explains the essential software required for participating in the NXP Cup 2024 using the MR-B3RB Robot.
Participants will use a combination of pre-configured ROS2 and Zephyr-Cerebri software. Here, "Cerebri" refers to the application layer, while "Zephyr" is the underlying Real-Time Operating System (RTOS). This software stack integrates with the Cognipilot autopilot system, which is available at .
The following pages provide detailed installation instructions for both the simulation environment and the actual robot. Additionally, there is a section dedicated to explaining the line follower algorithm for the NXP Cup 2024.
Cognipilot simulation installation specific instructions for nxp-cup
To follow this tutorial you first need to follow and install everything explained in:
If your installation has been successful you must be able the launch the Gazebo simulation by running the following commands in your development computer:
Please ensure that these commands function correctly and that your setup resembles what is shown in this
Launching the Gazebo Harmonic simulation will enable you to control the robot via the Foxglove interface. As explained in this section:
Next, we will install all necessary packages for developing the algorithm for the NXP CUP 2024, applicable to both the MR-b3rb simulation and the actual robot.
To simplify repository updates, we've created a shell script. This script automates the process of updating all repositories to the latest versions hosted on the GitHub, specifically for the NXP Cup.
The changes on the repositories are:
Synapse Protobuf and Synapse Tinyframe: Define the Pixy Vector message in the Protobuf language and provide essential definitions and functions for the TinyFrame library to operate correctly. For more information, refer to the documentation.
Synapse msgs and Synapse ros: Extend ROS with the Pixy Vector message definition and support Synapse which the facilitates communication between NavQPlus (ROS2) and CANHUBK344 (Zephyr).
Dream world: Adds a simulated race track environment to the workspace.
B3RB simulator: Includes the launch file for the node that processes the race track images.
Electrode: Integrates support for the debug image and pixy vector in Foxglove, facilitating debugging and visualization.
Cerebri: Implements a subscribing mechanism to receive the Pixy Vector message and controls for the line follower algorithm.
NXP CUP Vision: Added ROS2 package for processing race track images, transforming perspectives, detecting track edges, and publishing both the debug image and the Pixy Vector, pivotal for visual processing.
This file ensures that all the repositories are updated. Save this script in ~/cognipilot:
Save this script as update_repos_native.sh in the ~/cognipilot
directory, using any text editor of your choice, such as Vim, Gedit, Nano, or VSCode.
Then, open the terminal and execute the following commands:
This must have updated all your repositories. Please review the output of this script. It's possible that you have made local changes to the repositories, and you may need to stash them.
To build the software, navigate to the cranium/src
directory within ~/cognipilot
:
Repeat the build process for the electrode
directory:
Update the West workspace for cerebri
.
Now, you are ready to run the simulation:
To launch the Gazebo simulation featuring the MR-B3RB robot on a simple raceway, execute:
To start the Foxglove viewer for the simulation, run:
These commands will initiate the Gazebo simulation with the MR-B3RB robot and the raceway, alongside launching the Foxglove viewer.
To initiate the robot's movement, press the AUTO button and the arm button on the joystick. This action will activate the robot's line-following mode and set it to the armed state, preparing it for operation.
Once the AUTO and arm buttons on the joystick are pressed, the robot will immediately begin to navigate around the racetrack. To understand the underlying code and setup, and to explore ways to obtain a better performance for the NXP CUP 2024, proceed to the next tutorial.
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
User contributed 3d printed parts may be linked to here
Try playing with this option for performing flip without 2D
gst-launch-1.0 v4l2src device=/dev/video0 extra-controls='c,horizontal_flip=1,vertical_flip=1' ! xxxxx
The MR-B3RB platform is equipped with a camera connected to the NavQPlus, enabling a variety of functions such as robot visualization, Visual SLAM, and other computer vision and machine learning applications. The Cognipilot package for ROS2 includes an 'ov5645.ini' configuration file with the camera's intrinsic calibration data. This data is crucial for correcting lens distortion and understanding the camera's geometric properties in computer vision and robotics applications. However, this file serves is just an indication, and users must perform a camera calibration after assembling the MR-B3RB robot to ensure a better operation.
Some cameras, such as pinhole cameras, introduce significant distortion to images. Two major kinds of distortion are radial distortion and tangential distortion.
Radial distortion causes straight lines to appear curved. Radial distortion becomes larger the farther points are from the center of the image. Similarly, tangential distortion occurs because the image-taking lense is not aligned perfectly parallel to the imaging plane. So, some areas in the image may look nearer than expected. In short, we need to find five parameters, known as distortion coefficients.
Extrinsic parameters corresponds to rotation and translation vectors which translates a coordinates of a 3D point to a coordinate system
To find these parameters, we must provide some sample images of a well defined pattern (e.g. a chess board). We find some specific points of which we already know the relative positions (e.g. square corners in the chess board). We know the coordinates of these points in real world space and we know the coordinates in the image, so we can solve for the distortion coefficients. For better results, we need at least 10 test patterns.
In addition to this, we need to some other information, like the intrinsic and extrinsic parameters of the camera. Intrinsic parameters are specific to a camera. They include information like focal length and optical centers. The focal length and optical centers can be used to create a camera matrix, which can be used to remove distortion due to the lenses of a specific camera. The camera matrix is unique to a specific camera, so once calculated, it can be reused on other images taken by the same camera.
The camera matrix is independent of the camera's position on the vehicle. It only affects the perspective transformation used to flatten the image after rectification.
After the theoretical background we are going to see how to calibrate the camera on the MR-B3RB robot.
Before start, make sure that you have followed the CogniPilot developer guide on MR-B3RB and you have installed the most updated stable version of Cognipilot. (NXP-CUP: In case you are a participant of the NXP CUP 2024 please also follow this tutorial NXP-CUP 2024 with MR-B3RB)
Connect through ssh to the NavQPlus as explained in Cognipilot: CheatSheet for operation
Remember to print the calibration pattern: #calibration-pattern
In one terminal run the following command:
Then open a new terminal and connect throush ssh to the NavQPlus and run:
If you want to see the output yo can run in your host computer:
This will open foxglove and you will be able to select the topic /calibration_camera_feed on the image panel.
You should be able to see something like this.
For the calibration process, it's advised to keep the robot stationary and move the calibration pattern to different positions instead. Place it at various angles, because the calibration system requires multiple samples and poses to calibrate accurately.
You will see the 'Continue Sampling' message in the terminal until the calibration process has collected enough samples. After that, the message will switch to 'READY TO CALIBRATE.' Additionally, the 'calibrate' text in the Foxglove image will change to blue, as shown in the image below:
After the calibration node has collected enough samples, you'll need to open a new terminal window. Then, connect to the NavQPlus via SSH to begin calculating the camera matrix. In this new terminal, execute the following command to start the calibration:
For saving the results please run the following command:
Then you must see a message similar to the following:
Then the calibration has successfully finished, to stop the calibration please run:
ros2 topic pub /calibration_control std_msgs/msg/String "data: 'stop'" --once
To see the calibration results, first navigate to the cognipilot folder:
Then create a new folder:
And uncompress the file and place the files in this new folder:
The files ost.txt and ost.yaml contain the camera matrix and distortion parameters.
You have to print a calibration pattern, this tutorial is going to be done with a 9x6 chessboard pattern, but you can do it with other pattern. This web allows you to choose the one that you prefer: https://calib.io/pages/camera-calibration-pattern-generator
This is the one used in this tutorial: https://github.com/opencv/opencv/blob/4.x/doc/pattern.png
Please print it in an A4 mantaining the original size.
This page explains the software required for the NXP CUP 2024 with the MR-B3RB robot.
The CogniPilot software is integrated into both the NavQPlus, within ROS2, and the MR-CANHUBK344, within the Zephyr RTOS together forming an Ackermann steering robotic development platform.
Please follow the installation instructions to obtain the modified branch of the CogniPilot software, specifically tailored for the NXP CUP 2024; these instructions are explained in the previous sectionNXP-CUP 2024: Simulation Install instructions
The ROS2 part of the software is designed for high-level tasks and should be treated as "black box" for the NXP-CUP 2024,meaning that its code should not be modified.If you encounter any errors in this code, please report them to the NXP Cup organizers or through the technical support channel on the official NXP CUP Discord: https://discord.gg/JcWPbw649S.
The main CogniPilot modification in the ROS2 side for the NXP Cup 2024 is addition of the nxp_track_vision
node, which receives camera data, transforms the perspective, and extracts the Pixy Vector message. This message consists of two vectors, each with a tail and a head, defining the borders of the race track. This information is used by the robot controller to ensure that the robot stays within the track boundaries.
Here's the definition of the Pixy Vector ROS2 message:
The std_msgs/Header
in the Pixy Vector ROS2 message includes the timestamp indicating when the message was sent. Additionally, the message is composed by two vectors, with each vector represented by a pair of points: one indicating where the vector begins (tail) and the other where it ends (head). Each of these points is defined by an x and a y value, specifying their position in a two-dimensional space.
The nxp_track_vision_node
also publishes the Camera Debug Image. This image shows the perspective transformation applied to the camera's view, along with the detected lines of the track. Additionally, it displays the vectors being sent by the track vision node. This visual feedback should result helpful for debugging and optimizing the robot;s control software.
This is an example of the debug camera image:
You can visualize this image through Foxglove. For doing that first run:
Then add an Image panel to the B3RB layout provided and configure the ROS2 topic to /nxp_cup/debug_image.
Now a explanation of the line following control algorithm will be done. This algorithm is located on the Cerebri running on the Zypher RTOS in the MR-CANHUBK344. The Cerebri acts as the brain of our operation, facilitating complex decision-making processes that guide the robot seamlessly along the track.
This code is what you must modify and improve for the NXP CUP 2024.
The main function of the line follower algorithm is located in the velocity state inside the finite state machine logic that manages the robot's behaviour. This file is located in the ~/cognipilot/ws/cerebri/app/src/velocity.c
This is the GitHub location: See code.
The application folder is where the vehicle finite state machine, control, and estimation code reside. For more information visit: https://airy.cognipilot.org/cerebri/platforms/rovers/
In that folder you will find a file called velocity.c. This code is written in C language and has two main operation modes: the cmd_vel modes which listens the /cmd_vel topic from the Nav2 node from ROS2 and the auto mode, this one will listen to the Pixy vector message sendt by the nxp_track_vision_node and will estimate the velocity needed to maintain the robot in the race track:
There are several important variables and functions that are used in the code. A key description of them is given below:
The switch instruction evaluates the number of vectors found in the camera image and what the robot car will do depending on this number:
If no vectors are found (case 0), then the vehicle will stop.
If one vector is found, the algorithm finds the gradient of the vector and stores that in steer, and the speed
If two vectors are found, then the example algorithm will find the offset in the x direction of the average of the two head points of each vector. This will give us a steering value that will steer the cup car in the correct direction, which will be stored in steer. The speed value will be calculated and is stored in speed.
After calculating the speed and the steer values, a call to the CASADI function is done to estimate the control variable for the actuators. Then the robot can move the necessary meters that you need.
Before making changes to the velocity.c file or any files in the ~/cognipilot/ws/cerebri/app/b3rb directory, remember to rebuild the application to see the changes take effect.
For simulation:
For real robot:
In the nxp_track_vision.py file within the ROS2 package nxp_cup_vision, you'll find the following code snippet:
This code snippet automatically sets the B3RB robot in AUTO mode and arms the robot. By default, the self.JoystickPub.publish(joystick_msg) lines are commented out to allow control through Foxglove Studio during development. Uncomment these lines if you want the robot to automatically enter AUTO mode and arm itself.
If you need the robot to delay its start, add a sleep command:
This makes the robot wait for 15 seconds before starting, which can be particularly useful for the NXP-CUP competition.
Cognipilot MR-B3RB Robot installation specific instructions for nxp-cup
To follow this tutorial you first need to follow and install everything explained in: CogniPilot developer guide on MR-B3RB
You must also follow the NXP-CUP 2024: Simulation Install instructions as it is explained how to update you development computer for the NXP-CUP 2024.
If you have correctly followed the previous steps, you should already be familiar with how to flash the Cognipilot software onto the MR-CANHUBK344 board. In this step, we will flash the board again, but this time with an updated version of the Cerebri software that includes support for the NXP Cup 2024. Additionally, we will need to log in via SSH to the NavQPlus and update the cranium workspace to enable support for the NXP Cup, similar to the procedure outlined on the previous page.
In your development computer go to:
Check that you are on the nxp-cup branch
Which should return:
If it doesn't show that:
Remember if you PDB does not have the battery sensor you have to follow this guide: Configuring Cerebri Software for MR-CANHUBK344 Without Power Measurement Capability
If you have ensured that you are on the nxp-cup branch and that there is not any update available. Then type the following command:
west
west
to MR CANHUBK3Make sure Segger JLink is on your system and the MR CANHUBK3 is connected to the JLink programmer: Connect J-Link EDU Mini to MR-CANHUBK344 with DCD-LZ adapt board.
Once it has finished, you can disconnect the J-Link from your computer and from the MR-CANHUBK344.
In case the west flash command failed, put the followung commands on the terminal:
If you have any doubt or problem in this section please first refer to this documentation: https://airy.cognipilot.org/cranium/compute/navqplus/setup/
Once you have flashed the MR-CANHUBK344, It's time to log into the NavQPlus. Do this with this command:
Next, we will install the packages to develop the algorithm for the NXP CUP 2024 in the B3RB robot.
To simplify repository updates, we've created a shell script. This script automates the process of updating all repositories to the latest versions hosted on the NXPHoverGames GitHub, specifically for the NXP Cup.
The changes on the repositories are:
Synapse Protobuf and Synapse Tinyframe: Define the Pixy Vector message in the Protobuf language and provide essential definitions and functions for the TinyFrame library to operate correctly. For more information, refer to the Synapse documentation.
Synapse msgs and Synapse ros: Extend ROS with the Pixy Vector message definition and support Synapse which the facilitates communication between NavQPlus (ROS2) and CANHUBK344 (Zephyr).
B3RB robot: Includes the launch file for the node that processes the race track images.
NXP CUP Vision: Added ROS2 package for processing race track images, transforming perspectives, detecting track edges, and publishing both the debug image and the Pixy Vector, pivotal for visual processing.
This file ensures that all the repositories are updated. Save this script in ~/cognipilot:
Save this script as update_repos_navqplus.sh in the ~/cognipilot
directory, using any text editor of your choice, such as Vim or nano.
Then, open the terminal and execute the following commands:
Change directory to ~/cognipilot
and make the script executable:
This must have updated all your repositories. Please review the output of this script. It's possible that you have made local changes to the repositories, and you may need to stash them.
To build the software, navigate to the cranium/src
directory within ~/cognipilot
:
Now, you are ready to operate the platform.
On the NavQPlus, run the B3RB launch file:
Start Foxglove for operation and data visualization run the following command in your development computersimulation, run:
These commands will initiate the algorithm on the MR-B3RB robot and Foxglove viewer. You should locate your robot in the racetrack.
To initiate the robot's movement, press the AUTO button and the arm button on the joystick. This action will activate the robot's line-following mode and set it to the armed state, preparing it for operation.
Once the AUTO and arm buttons on the joystick are pressed, the robot should immediately begin to navigate around the racetrack. To understand the underlying code and setup, and to explore ways to obtain a better performance for the NXP CUP 2024, proceed to the next tutorial.
CANHUB-ADAP is used with MR-B3RB to provide:
An IMU
SCARD
Connections for StemmaQT/QUIIC I2C devices
GPS connectors
More
The schematics below can be used to review the interfaces
This tutorial describes how to use the SteamVR tracker with the B3RB
The Vive tracker can be used to provide a reasonably accurate ground truth reference for robotics. By enabling it using the libsurvive library, position and pose information can be viewed and stored in ROSBAGS for further analysis.
VIVE Tracker (3.0) can pair with HTC’s wireless dongle or use its USB interface to transfer tracking data to a PC. An accessory attached to VIVE Tracker (3.0) can:
Simulate buttons of the VIVE Controller through the underlying Pogo pin port.
Send specific data to a PC through the USB interface of VIVE Tracker (3.0).
The status light shows:
Green when the controller is in normal mode
Blinking red when battery is low
Blinking blue when the controller is pairing with the headset
Blue when the controller is connecting with the headset
Orange when charging
As mentioned in the Developer guide [2], the VIVE Tracker provides five use cases:
Use case 1: Track passive objects through USB interface in VR. In this case, the dongle is not used. VIVE Tracker (3.0) is connected to the PC through USB to directly transfer tracking data.
Use case 2: Track passive objects through USB interface in VR, with the accessory passing data to a PC through USB, BT/Wi-Fi or propriety RF. This is similar to Use Case 1 but the accessory directly transfers the tracking data to a PC for a specific purpose based on its design.
Use case 3: Track moving objects by wireless interface in VR. In this case, the dongle is used to transfer tracking data from the VIVE Tracker (3.0) to a PC.
Use case 4: Track moving objects using a wireless interface in VR, with the accessory passing data to a PC through USB, BT/Wi-Fi or propriety RF. This is similar to Use Case 3 but the accessory directly transfer the tracking data to/from a PC for a specific purpose based on its design.
Use case 5: Track moving objects using a wireless interface in VR, with the accessory simulating buttons of the VIVE Controller or passing data to a PC through the VIVE Tracker (3.0). This is similar to Use Case 3 but the accessory connects with the VIVE Tracker (3.0) to transfer a button event to a PC through the Pogo pins or USB interface.
To VIVE tracker in NavQPlus using ROS2, you need to follow the instructions in the following github repository: https://github.com/asymingt/libsurvive_ros2
libsurvive_ros2 provides a lightweight ROS2 wrapper around the libsurvive project, an open source set of tools and libraries that enable 6 dof tracking on lighthouse and vive based systems.
First of all set the udev rules:
And install the required packages:
Then create a workspace and install the ROS2 wrapper:
Connect the VIVE Tracker to the NavQPlus using an USB-C to USB-C cable.
Launch the ROS2 node:
Three topics are published:
/libsurvive/cfg: listens for device configuration
/libsurvive/imu: listens for devie inertial measurements
/libsurvive/joy: listens to the button
We need to look at the topic /libsurvive/imu of type sensor_msgs/msg/Imu.
To display topic data in foxglove, we need first to add the topics /libsurvive/imu and /tf_static to the whitelist.
This is simply the default method for connecting the unit. It can be used to ensure the device is working correctly. However for collecting data in ROS2, you will want to use the libsurvive library.
1- Download steam : https://store.steampowered.com/about/
2- Download steamVR https://store.steampowered.com/app/250820/SteamVR/
Connect the tracker to the PC via the USB-C cable then open Steam app. Got to "Library" then launch SteamVR app (click on the green button)
When launched, a small window will appear:
[1] Official website
[2] Developer guide
[3] Borges, Miguel, Andrew Symington, Brian Coltin, Trey Smith, and Rodrigo Ventura. “HTC Vive: Analysis and Accuracy Improvement.” In 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2610–15. Madrid: IEEE, 2018. https://doi.org/10.1109/IROS.2018.8593707.
In this tutorial you will learn how to integrate the BMS772 into the B3RB.
It is important to take precautions when working with batteries:
Before connecting a battery to the BMS, test it first using a power supply which has current limiting enabled. See section: Setup validation. This is to avoid damage that could occur because of bad soldering, a short of some kind or swapped wires.
LiPo batteries can be dangerous and catch on fire. When first plugging in a LiPo battery, please do it outdoors in an area that is fire-safe. Have a fire extinguisher nearby.
The RDDRONE-BMS772 is a standalone BMS reference design supporting 3 to 6 cell batteries.
The General Purpose MCU S32K144 provides great flexibility and communication to a PX4 based FMU via UAVCAN or I2C/SMBus. More information about the board can be found in references [1][2].
The BMS will be integrated in the system following the wiring diagram below:
For setting up the hardware, we need:
prepare the 3D printed mount
solder connectors and make cables
solder the balance leads and make its extension cable
prepare a battery emulator setup
This particular 3D print will allow the RDDRONE-BMS772 to connect to the pre-production version of MR-B3RB lower chassis metal frame. Future versions may not need this adapter, or may be able to just use standoff's directly.
We recommend pluggable cable connectors as shown below. Follow these images for guidance. Some XT60 connectors have a "back shell" to also help cover the solder joints. The backshell is preferable.
Because of the limited space on the B3RB. it is preferable to use a balancing leads connector that points upward. This will better clear the PDB that is adjacent to this board, and allow you to more easily plug in the battery's balancing cable later. Solder the white balance connector as shown below:
If you cannot obtain a vertical balance lead connector, while sub-optimal, the right angle connector that ships with the board may be modified to stand upright by removing the tabs at the rear. Be extra careful about the correct orientation and alignment
You will also need to make an extension cable for the balance leads connector. The leads that typically come as part of the battery is quite short. The suggested cable length is approximately 17cm.
The extension cable can act as a fuse. While the wires in the picture below are thin, they can blow up in case of short circuit, the a battery damage could be avoided.
In this section we will prepare a setup to emulate the battery using a power supply. For this setup we need:
4 x 1kΩ resistors
2 wires: one black and one red
Female balance leads connector with wires
Here are the steps:
Connect the female balance leads connector with wires and cut them to make them short.
Solder the resistors in series then solder two cables in both sides (black and red) as depicted in the picture above. Please make sure that the sides of the black and red wires are similar to the picture.
connect Black and red wires of the battery cells emulator to - and + input from the power supply.
Set the voltage in your power supply to 12V, then plug the input port to the power supply and the output port to the load that you are powering.
You can compile a binary from this GitHub repository: https://github.com/NXPHoverGames/RDDRONE-BMS772 or flash the existing binary https://github.com/NXPHoverGames/RDDRONE-BMS772/blob/main/Binary/nuttx.bin (follow these instructions).
Activate the cyphal can and setup the can id:
In this section, we present three methods to display received messages via CAN:
using yakut CLI
using pycyphal library
using pycyphal library and ROS2
Before the three next steps, you need to prepare the environment variables and add the DSDL namespace as follow:
Yakút is a simple cross-platform command-line interface (CLI) tool for diagnostics and debugging of Cyphal networks. (For more information refer to [3])
The BMS772 software is already publishing three messages:
type: reg.udral.physics.electricity.SourceTs_0_1, port: 4096
type: reg.udral.service.battery.Status_0_2, port: 4097
type: reg.udral.service.battery.Parameters_0_3, port: 4098
Print published Cyphal message in a terminal:
First, clone the following repository:
Run the script to print the received cyphal messages:
Clone the following repository:
Run the ros2 node:
Print the topic:
Once the topic is publishing battery state messages, we can display it in Foxglove. Fist add the topic to the while listed topics in robot.launch.py file
In your PC, download the following layout file and add it to Foxglove studio:
You should see two different tabs: one tab General for displaying the B3RB topics and one tab Battery for displaying the battery status raw data:
[1] BMS gitbook: https://nxp.gitbook.io/rddrone-bms772/software-guide-px4/introduction
[3] https://github.com/OpenCyphal/yakut
Measurement of distance within the range 1 mm to 1300 mm for cliff detection using VL53L4CD.
The B3RB can use a TOF distance sensor as a cliff detector and the appropriate software to prevent it from driving off a table, down a stairway or any other "cliff" it may encounter while moving forward. These sensors could also be used pointing in other directions for other proximity detection applications. This tutorial describes how to perform cliff detection on MR-B3RB using TOF VL53L4CD sensor with MR-CANHUBK344 and MR-CANHUBK3-ADAP boards. The example and configuration shown below is with the MR-CANHUBK344 running Zephyr and Cognipilot but is showing the board outside of the installation on a MR-B3RB. When used with a B3RB, the power is supplied in the normal fashion and not with external connectors shown.
The Time of Flight VL53L4CD sensor measures distance within the range 1 mm to 1300 mm.
The sample application "samples/sensor/vl53l4cd" polls on the sensor every 1 second and reads the current distance measured from the device. Then it prints the distance on the console (in meters).
All items except 3 (Cable), 4 (TOF sensor) and 10 (5V DC Power supply) are included with MR-B3RB-S.
Re: item no. 9, MR-CANHUBK344 kit that comes with MR-B3RB-S, includes multiple cables with "SYP" connector which could be utilized for supplying power to the MR-CANHUBK344.
S.NO. | NAME | QTY |
---|---|---|
This hardware setup shows these boards outside of MR-B3RB on a tabletop. This of course can also be done on the vehicle itself. Simply plug in the sensor and the STEMMA QT cable to the CANHUB-ADAP. The power and other connections do not change from a normal MR-B3RB configuration.
The JLINK can alternatively connect to the small DCD-LZ board if preferred.
Power may be supplied using either of the power connectors. In an assembled MR-B3RB this would be using the 5 pin JST-GH power in cable rather than the SYP cable.
Connect hardware components as shown in the block diagram above. The CANHUB-ADAP includes a I2C connector that follows the ADAFRUIT STEMMAQT standard.
Attach the MR-CANHUBK3-ADAP board on top of MR-CANHUBK344.
Power on the MR-CANHUBK344 board - connect the SYP connector to the MR-CANHUBK344, and the other end of the cable to your bench power supply or any source that could provide 5V DC.
Get the shell of MR-CANHUBK344.
The shell should display output as:
This page describes the integration of PMD Flexx2 ToF camera with NavQPlus
A Time-of-Flight camera (ToF) is a range imaging sensor that produces a depth image, each pixel of which encodes the distance to the corresponding point in the scene [1].
In addition to the camera that produces 2D images, the ToF sensor includes an IR transmitter. By measuring the phase difference between the radiated (red) and reflected (blue) IR waves, we can calculate the distance to the object as depicted in the figure below.
The PMD Flexx2 camera intended use are: augmented Reality / Virtual Reality and SLAM. It has the following specifications:
Depth Measurements from 10 cm to 7 m
VCSEL with 940 nm Wavelength
38,000 3D Pixels with up to 60 FPS
Independent of External Light Source
224 x 172 Resolution
Multiple built-in User Modes
56 x 44 Degree Field-of-View
USB 3.0 Type-C Port
71.9 x 19.2 x 10.6 mm compact size
Software Suite "Royale" and API
Download the royale SDK from the official website: https://pmdtec.com/en/download-sdk/
You need to fill in the form then you will get an email with a download link available for 24 hours. Use the password that comes with the camera.
You need to download two .zip files: one for your PC where you will display the camera data connected to the PC or the NavQP, and one for the NavQP.
The recent SDK for Flexx2 camera does not have the ROS2 driver. But the previous SDK does. Then, as recommendation, download the zip file libroyale-4.24.0.1201-LINUX-arm-64Bit-ub2004.zip for NavQP.
Linux PC: libroyale-<ROYALE-SDK-VERSION>-LINUX-x86-64Bit.zip
Windows PC: libroyale-<ROYALE-SDK-VERSION>-WINDOWS-x86-64Bit.exe.zip
NavQP: libroyale-4.24.0.1201-LINUX-arm-64Bit-ub2004.zip
Connect the camera to the PC using a USB-A to USB-C cable.
If you are using a Linux machine, download the zip file libroyale-<ROYALE-SDK-VERSION>-LINUX-x86-64Bit.zip from the download page, add the udev rules then run royaleviewer after reboot:
A GUI will start, click on start button on the bottom right corner to start the display:
You can use the TOOLS button to change some parameters. For example you can change the color range, or the type of data displayed (Gray image, depth image), etc
There is also a LOG button on the top right corner of the GUI where you can find useful debug or error logs.
If you are using a windows machine, install the zip file libroyale-<ROYALE-SDK-VERSION>-WINDOWS-x86-64Bit.exe. Unzip the file then run the executable to install the Royale Viewer.
Once installed you can find the executable with the name royaleviewer-royale_<ROYALE-SDK-VERSION> under C:\Users\<USER>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\royale_<ROYALE-SDK-VERSION> (Win64)
Once the program is launched, the steps are similar to those described in Linux sub-section.
Connect the camera to the NavQPlus with an USB-C to USB-C cable (see picture below).
Connecting the camera to the NavQPlus uses a USB-C to USB-C cable. A USB-A to USB-C cable will not work and the camera will not seen by the board. The USB port is configured correctly as HOST.
Before using the camera, you need to add the udev rules available in the SDK zip file that you downloaded from PMD download link.
Under the bin/ directory, run the binary tcpserver:
The Royale SDK provides some sample codes available under samples/cpp/ directory. You should find a directory sampleROS2, which contains code for ROS2 driver.
You need to adjust this code to be able to compile in ROS2 Humble. First create a ROS2 workspace and copy the ROS2 driver there:
Then change the CMakeLists.txt file and the package.xml file to add the package pluginlib dependency:
Then compile the ROS2 workspace using the following command:
Change the path to Royale SDK depending on your environment, and make sure to reference to share/ directory in this command.
Make sure that mlan0 interface in listed in the list of interfaces in CycloneDDSConfig.xml file, then run RVIZ in a PC:
[1] Hansard, Miles, Seungkyu Lee, Ouk Choi, and Radu Horaud. Time-of-Flight Cameras: Principles, Methods and Applications. SpringerBriefs in Computer Science. London: Springer London, 2013. https://doi.org/10.1007/978-1-4471-4658-2.
[2] https://3d.pmdtec.com/en/3d-cameras/flexx2/
[3] SDK download link: https://pmdtec.com/en/download-sdk/
There is an additional B3RB gitbook supporting the NXP AIM CHALLENGE (2024) where the B3RB is configured to use vision to drive around a track and avoid several obstacles. The simulation setup may be of interest to others and can be found here:
There is an opening in the rear plastic which can accept antennas from telemetry radios and other types of antennas. Changing the WiFi/BT antenna on NavQPlus may result in improved range. However it should be noted that this may cause your B3RB to no longer be compliant with FCC or CE regulations. It is your responsibility to know if you are compliant. The NavQPlus is tested and compliant only when used with the antenna provided when shipped.
Specifications: Gain: 8dBi Frequency Range: Dual Band WiFi 2.4GHz 5.8GHz VSWR: <2.0; Polarization: Linear Vertical; Impedance: 50 ohm; Direction: Omni-directional; Connector: RP-SMA Male Connector; Antenna Dimension: 16cm x 1.5cm Diameter; Net Weight: 62g; Operating Temperature: -20°С ~ +80°С Sto...
ON/Off power switch
A low cost 20A power switch can be added inline to the battery power cable in order to turn the whole unit off without having to remove the battery. A 3D printed bracket was designed to attach to the underside of the main plate, and stick out the front of the B3RB under the front headlights.
This provides a clip/mount for the battery extension cable mount which attaches to the front standoff from the body to the frame.
Variable/Function | Purpose |
---|---|
Tracker (3.0) | |
---|---|
Context* ctx
This variable is a pointer to the context struct, a custom data type that stores information as the pixy vector, the robot status and the wheel base and radius.
Pixy Vector
Contains information of pixy vectors obtained from the nxp_track_vision node. This includes the starting and ending points (x0, y0, x1, y1) for each vector detected by the camera
linear_velocity
The variable that stores the linear velocity at which the car will move forward. It is a constant value representing the speed in a straight line
angular_velocity
The variable that stores the angular velocity at which the car will steer. It represents the rate of change in the car's direction
single_line_steer_scale
This variable controls how much the car steers when it can only find one line of the race track. It scales the angular velocity to adjust the steering sensitivity
steer
Variable that stores the steer or angular velocity in the same way that the standard cmd_vel message from ROS2 does. It is calculated based on the Pixy Vector information and controls the direction the car turns
vel_linear_x
Variable that stores the linear velocity or vel.linear.x in the same way that the standard cmd_vel message from ROS2 does. It is adjusted based on the steering angle to ensure smooth turns
num_vectors
Variable that stores the number of Pixy Vectors obtained. The value range for this variable is 0, 1, or 2, indicating how many lines the Pixy camera has detected on the track
frame_width
Width of the green frame on the debug image, which the Pixy vector values from the nxp_track_vision node are based on
frame_height
Height of the green frame on the debug image, which the Pixy vector values from the nxp_track_vision node are based on
Tracking
Support for SteamVR BS1.0 and BS2.0
Status indicator
LED
Input
Power button, Pogo pin, USB-C
Charging
USB-C
Attachment
1/4-inch UNC Threaded mount (standard tripod mount
1
1
2
1
3
1
4
1
5
J-Link EDU MINI DEBUGGER (Complete set)
1
6
1
7
1
8
1
9
CABLE, SYP CONNECTOR for supplying power to MR-CANHUBK344
1
10
DC Power Supply (any) for supplying 5V to MR-CANHUBK344
1
Instead of the M10 GPS provided:
if you want to use your M8 GPS add this to your cerebri/app/b3rb/boards/mr_canhubk3.conf:
And to remove the need for the battery monitor also add:
[1/11 3:41 PM] Benjamin Perseghetti
K3 <-ENET-> NavQPlus improvement update!
Hey everyone, we just merged a massive improvement for the network between K3 and NavQPlus. Please follow these instructions to update your B3RB system:
Update B3RB and dev computer's cranium by running on both of them:
Update, build, and flash new cerebri image from dev computer (where these instructions should be run) to k3 with attached programmer:
This note is for code inside of Cognipilot, and should be considered more advanced. It is included here only for reference.
If you want to play around with making your own:
And all I did was insert this at very top of generated tone:
(Draft)
This video is NO LONGER ACCURATE! This was recorded for the pre-production until of MR-B3RB and were prepared quickly in order to aid in assembly. While the video is ok for an overview, Please refer to the individual assembly step pages for updates to specific details
The basic mechanical assembly of the MR-B3RB preproduction version is shown in the following videos.
.
Note: Some items were not able to be shown at the time of recording the video below:
1) QUADRATURE CABLE: Not shown is a specially marked quadrature encoder cable that goes between the PDB board and the MR-CANHUBK344. It is included and marked in the kit. For conveniencep lease connect to the PDB while the top plate is not screwed down.
2) GPS MODULE: The GPS module plugs into MR-CANHUBK344 "CAN-ADAP" board the connector is marked GPS. It is used for magnetometer and arming functions at this time.
3) BATTERY BEEPER: A low battery beeper is included and should be attached to any LiPo battery that is being used in order to avoid over-discharging the battery. This is IMPORTANT as it could damage the battery to a point where recharging adds additional risk of thermal runaway. Treat any LiPo batteries with care.
3b) POWER MODULE: NOT included. The software has been developed to support the use of an INA226 current monitoring device, however this module is NOT currently included in the kit. We are looking toward adding to the production version of the PDB. An external digital Pixhawk power module may also be used (P/N PM02D).
Please use provided zip ties to hold cables in place. This includes the LED lighting running along the side of the lower metal and at any location where cables wrap around the side of the top plate.
When assembling the LED strip assembly, some finesse is required to ensure the two mounting screws and nut are tightened "optimally", otherwise the assembly may not be level or may warp. Watch the gap along the side where the front plastic meets the side plates.
If you're integrating the Cerebri software with the MR-CANHUBK344 and you are not using a GPS, but rather the PX4ARMINGBRD you'll need to make a specific configuration adjustment to ensure proper functionality. This guide walks you through the necessary steps to modify the configuration for compatibility with your hardware setup.
Please ensure you have the following PX4ARMINGBRD:
When building the Cognipilot software for real robot operation on the MR-CANHUBK344, if you lack GPS but possess the PX4ARMINGBRD as depicted above, you must perform the following update:
Initially, you must update a configuration line in the prj.conf file to reflect the absence of G MAG measurement capabilities in your setup. Follow these instructions:
Navigate to the configuration file located at ~/cognipilot/ws/cerebri/app/b3rb/prj.conf
.
Locate the lines CONFIG_CEREBRI_SENSE_MAG=y
and also the following line: CONFIG_CEREBRI_SENSE_UBX_GNSS=y
Change this line to CONFIG_CEREBRI_SENSE_MAG=n
and also change the following line: CONFIG_CEREBRI_UBX_GNSS=n
This adjustment disables the magnetometer and GPS feature, accommodating the hardware limitation.
After updating the configuration, proceed with the following steps to apply the changes and build the software:
By following these steps, you configure the Cognipilot software to operate correctly with your MR-CANHUBK344 hardware without GPS.
Get the PX4ARMINGBRD and the 10-Pin JST-GH to 10-Pin JST-GH cable that comes with it:
And connect it to the following pin on the MR-CANHUBK344:
If you're integrating the Cognipilot software with the MR-CANHUBK344 and are not using a Power Distribution Board (PDB) with power measurement capability, you'll need to make a specific configuration adjustment to ensure proper functionality. This guide walks you through the necessary steps to modify the configuration for compatibility with your hardware setup.
When you are building the Cognipilot software CogniPilot: Prepare MR-CANHUBK344 for programming for the real robot operation on the MR-CANHUBK344, if its the case that you are not using PDB without power measurement capability, shown in the above picture you have to make the following update:
Initially, you must update a configuration line in the prj.conf file to reflect the absence of power measurement capabilities in your setup. Follow these instructions:
Navigate to the configuration file located at ~/cognipilot/ws/cerebri/app/b3rb/prj.conf
.
Locate the line CONFIG_CEREBRI_SENSE_POWER=y
and also the following line: CONFIG_CEREBRI_SENSE_SAFETY=y
Change this line to CONFIG_CEREBRI_SENSE_POWER=n
and also change the following line: CONFIG_CEREBRI_SENSE_SAFETY=n
This adjustment disables the power sensing feature, accommodating the hardware limitation.
After updating the configuration, proceed with the following steps to apply the changes and build the software:
By following these steps, you configure the Cognipilot software to operate correctly with your MR-CANHUBK344 hardware without power measurement capability.
Since Cerebri sits ontop of Zephyr you can use normal Zephyr west
commands to debug. Specifically with the JLinkEDU attached you can run west debug
from the development machines ~/cognipilot/ws/cerebri
what that will do is rebuild and flash the latest zephyr binary if there has been changes and attach you to a gdb session (make sure to have recently flashed/built cerebri though so it has the context of the last board and app for the build combination). (edited)
If you are looking for just general debug details you can use the logging backend of Zephyr through a UART shell or have printf statements that go directly to shell. Be careful how much you dump to the shell though, it's not an infinite resource, the logging backend helps protect you from spamming the shell too much. Note that logging backend also allows you to do things like set the logging level and enable/disable the log while it is running from the shell. On the included DCD-LZ adapter use the UART FTDI cable and connect to it over screen: screen /dev/ttyUSB_ 115200
(fill in the USB number it comes up as if you have multiple should tab complete)
These pages for REFERENCE, skip to the for actual assembly
The MR-B3RB is a "kit of kits", therefore, components are grouped to sub-pages relating to their sub-kits.
These sub-pages will describe the individual sub-kit. Each page contains a components table which enumerates all the parts that are included in the kit.
The diagrams on the pages contain the pictures of the parts.
The parts are labelled with their corresponding serial numbers, either directly in the diagram or in the heading of the diagram. To understand the possible configurations please refer to the.
Because this is the pre-production version of the MR-B3RB, some cables and screws are not as clearly separated in the sub-kits as they could be. For clarity we will mention them and their purpose here.
The wires represented by rows with serial numbers 6 and 7 in the following table are not included in the current (Pre-Production) unit. Refer . In their place, incompatible cables are included and their pictures are shown in the diagrams on this page, for reference purposes.
S.No. | Description | Quantity |
---|
S.No. | Item Number | Description | Quantity |
---|
S.No. | Description | Quantity |
---|
NOTE <TODO> 1) The image shows the incorrect cable for item #26. this is a servo extension cable which is MALE-FEMALE and it is already attached to the B3RB. There is only one of this Male-Female Cable. Note the naming of 600-10006 "" is in fact correct. These cables are used to jumper between the pin headers on the PDB and the MR-CANHUBK344
S.No. | Item Number | Description | Quantity |
---|
1 | 700-89377 | PWA, MR-CANHUBK344 | 1 |
2 | 700-47294 | PWA, DRONE-CAN-TERM (CAN Bus Termination Resistor) | 1 |
3 | 336-77458 | HW ACCESSORY, 0.91 inch OLED Display Module IIC SSD1306 128x32 OLED | 1 |
4 | 600-77466 | CABLE, 4 PIN JST-GH TO 4 PIN JST-GH 300 MM | 1 |
5 | 600-77467 | CABLE, ASSY, 4 PIN JST-GH TO 4 PIN JST-GH 50 MM | 1 |
6 | 600-77521 | DATA CABLE, 2 PIN JST-GH TO 2 PIN JST-GH 254 MM | 1 |
7 | 600-77602 | HW ACCESSORY, 5 PIN TO 5 PIN POWER INPUT CABLE | 1 |
8 | 600-77603 | HW ACCESSORY, POWER INPUT CABLE SYP TO DC5.5, 2.1 JACK | 1 |
9 | 600-77604 | HW ACCESSORY, POWER INPUT CABLE, SYR 2 PINS TO GHR 5 PINS | 1 |
10 | 600-77625 | HW ACCESSORY, XT60 Male to XT60 Female with SYP in parallel | 1 |
11 | 926-79071 | POSTCARD, MR-CANHUBK344, 6" X 4" | 1 |
12 | CABLE, 6 PIN JST-GH TO 6 PIN JST-GH 150 MM | 1 |
1 | 901-10008 | 1 |
2 | 901-77273 | 1 |
3 | 700-31354 | 1 |
4 | 600-77370 | 1 |
5 | 901-77364 | 1 |
6 | 280-77408 | 10 |
7 | 901-77659 | 1 |
8 | 600-77612 | 10 |
9 | 700-47472 | 1 |
10 | 600-77546 | 1 |
11 | 901-10005 | HW ACCESSORY, DIRECT TIME OF FLIGHT LIDAR | 1 |
12 | 280-10004 | FASTENER, SCREW M2.5x10MM BLACK HEX SOCKET HEAD CAP | 3 |
13 | 280-10006 | NUT, M2.5 x 0.45MM NYLON INSERTED HEX SELF LOCK NUT, BLACK ZINC PLATED, DIN985 | 3 |
14 | 280-10007 | 3 |
15 | 280-10008 | 3 |
16 | 280-10009 | 16 |
17 | 280-10012 | 8 |
18 | 280-10013 | 4 |
19 | 280-10014 | 4 |
20 | 805-77575 | 1 |
21 | 805-10002 | 2 |
22 | 805-10001 | 1 |
23 | 805-10003 | 1 |
24 | 901-77605 | 1 |
25 | 901-77606 | 1 |
26 | 600-10006 | 2 |
27 | 600-77359 | 1 |
28 | 901-10012 | 1 |
29 | 600-10009 | 1 |
30 | 590-10002 | FOAM, BLOCK 400MM WIDTH 600MM LENGTH X 200MM THICKNESS | 1 |
31 | 280-77781 | FASTENER STANDOFFS 6x35MM & (TOP/BOTTOM) 3MMx5 SOCKET HEAD | 1 |
1 | 1 |
2 | 1 |
3 | 1 |
4 | 1 |
1 | Cable, Lidar to NavQPlus 6-Pin JST-GH to 4-Pin JST-PH | 1 |
2 | Cable, XT60 PANEL MOUNT ADAPTER to XT60 Connector with Cover | 1 |
3 | XT60 Connector with Cover | 1 |
4 | Cable, Twisted, Black, 5-PIN JST-GH to 5-PIN JST-GH (With only 4 wires connected and middle wire unconnected) | 1 |
5 | Cable, 3 Pin Female Dupont Jumper to 6-PIN JST-GH | 1 |
6 |
| 1 |
7 |
| 1 |
The PDB board is being revised from the pre-production unit to include power measurement capability. The final production version will look different than what is shown here. An image of the production version is included at the end of this page
Below is the production version of the PDB.
PDB includes a digital voltage and current monitoring circuit (Px4 standard INA226AQDGSRQ1)
Different method of connecting PWM signals which avoids mixing up the channels. Servo connects to PDB. Servo and motor control PWM sent to real time controller through a single JST-XH connector (XHDP)
LED lighting connection improved. Instead of a split power+signal cable, now uses STEMMAQT type to the PDB and a separate SPI cable to connect to real time controller. Power is injected from PDB.
3rd 5-pin JST Power connector included
QDEC pinout corrected to be 1:1 (error on pre-production version meant that a reverse cable was needed)
Fuse on board (5A populated, could use 3A depending on application.)
UPDATING: The final version of this kit will be updated so that the camera mount (item 2.B) is instead open on the bottom, allowing the camera cable and camera to be more easily separated from the mount.
S.No. | Name | Quantity |
---|---|---|
UPDATING: The final version will have the excess side rail materials removed from the board. Meanwhile, if your board looks as below, please snap off all the four side rails as shown below
UPDATE - this BOM is not accurate. In Production it should consist only of these four sub-kits: > MR-B3RB-S + MR-B3RB-MUK + GPS + MR-LIDAR-STL27
S.No. | Item Number | Description | Quantity |
---|---|---|---|
HW ACCESSORY, and and
HW ACCESSORY,
PWA,
HW ACCESSORY,
S.No. | Item Number | Description | Quantity |
---|---|---|---|
S.No. | Name | Quantity |
---|---|---|
S.No. | Description | Quantity |
---|---|---|
1
M-10 GPS Module
1
2
Pixhawk & Holybro Stickers
1
3
Base Mount
1
4
Base Mount Screws
1
5
Top Mount
1
6
Top Mount Double Tape
1
7
Mounting Rod
1
In some instances it may be that the motor to gear meshing needs to be adjusted.
Check that when you gently rotate the wheels, the gears sound like they are engaging well.
<TODO - describe how to diagnose this issue in a more precise way>
The gear meshing is adjusted by loosening the two screws in the front of the motor mounting bracket. You can push the motor closer with mild pressure to ensure the teeth are well engaged. <TODO - add photos of how to adjust motor>
1
900-77143
HW ASSY, 8MPNAVQ-8GB-G KIT
1
2
900-77144
HW ASSY, INNOCAM KIT WITH ENCLOSURE AND SCREWS
1
3
700-87692
PWA, 8MPNAVQ-USBSER
1
4
334-77918
Micro SDCS2 32GB, Class 10 UHS-I, Canvas Select Plus
1
5
600-77602
HW ACCESSORY, 6 PIN TO 6 PIN POWER INPUT CABLE
1
6
600-77604
HW ACCESSORY, POWER INPUT CABLE, SYR 2 PINS TO GHR 5 PINS
1
7
600-77625
HW ACCESSORY, XT60 Male to XT60 Female with SYP in parallel
1
8
600-77521
DATA CABLE, 2 PIN JST-GH TO 2 PIN JST-GH 254 MM
1
9
600-77456
CABLE, 4 PIN JST-GH TO 4 PIN JST-GH 300 MM
2
10
600-77370
CABLE, USB-TTL, FTDI TTL-232R-3V3, 6 PIN CONNECTOR, +3.3V, 0.70 M
1
11
650-77719
HW CABLE GH 5 PIN TO GH 5 PIN, 100 MM
1
12
600-77212
USB CABLE, USB 3.0 A/M TO TYPE C CABLE, 1M
1
13
600-77658
CABLE, IX INDUSTRIAL IP20 CABLE, IX TO RJ45
1
14
928-79059
QSG, Quick Start Guide For NAVQPLUSPC
1
15
926-79301
FLYER, INNOWAVE DESIGN MARKETING FLYER
1
16
926-79302
EMCRAFT QR CODE STICKER
3
17
901-77834
HW ACCESSORY, ZIPLOCK BAG CONTAINING MOUNTING ACCESSORIES FOR SMPNAVQ-8GB-G AND MR-NOCAM-OV5646
1
1
Metal Parts
1
2
Plastic Parts
1
3
Thumbscrew M3 X 0.5 X 15MM
12
4
FASTENER, SCREW M3 X 0.5 X 10MM LONG, PHILLIPS, FLAT HEAD TAPPING, 18-8 SS
10
5
NUT, M3 X 0.5 X 4MM HEX SELF LOCK NUT, 18-8 SS
10
6
FASTENER, SCREW M3 X 0.5 X 10MM LONG, HEX DRIVE, SOCKET HEAD, 18-8 SS
9
1
1
2
1
3
1
4
1
1
91352
1
2
91354
1
3
91353
X-MR-B3RB-BMF and includes X-MR-LIDAR-STL-27
1
4
901-10014
HW ACCESSORY, M10 GPS MODULE STANDARD
1
5
926-10002
MR-B3RB Pre-Production Prototype PAPER
1
6
901-10015
1
7
901-77659
1
Instructions for the NXP Mobile Robotics Buggy 3 Rev B design.
As of Jan1/2024 these kits are considered pre-production versions and will change to accommodate improvements before production. Production versions are expected to be released on nxp.com later in 2024. You may encounter components that need to be updated or replaced. Contact your original source for the kit if you suspect you are missing an upgraded part.
Alternatively you may also fill out this form: https://forms.office.com/e/kxRHainXDR
The following pages describe the mechanical assembly of the MR-B3RB-M pre-production version. The -M version of MR-B3RB includes the -MUK mechanical upgrade kit consisting of:
side skirts (note: this is moving to the base version to avoid needing to swap the plastic side clips)
front and rear plastics (for LED covers and angles front and rear covers)
lidar arch plate metal and metal top cover.
To install the -MUK (Mechanical Upgrade kit) you will need to first:
remove the plastic clips that hold the top metal plate in place and
replace them with the side skirt plastic.
Then install the front and rear plastics as shown in the following assembly videos.
(This will change in production version. Side skirts will already be present in base version)
You may have a -S version of the kit which doesn't include these extra components, in that case just mount the NavQPlus and MR-CANHUBK344 in a similar way as shown in the assembly videos.
There is a plastic bracket included with the NavQPlus kit that can be used to mount the camera in the correct location at the front.
The MR B3RB car should look like this in the pre-production unit after opening the box.
UPDATING: The production units will instead include the larger side plastic skirts. The small plastic clips shown below will not be used. It will no longer be required to replace the top plate screws and clips.
Use a hex screwdriver or Allen Key and remove all top and side screws securing the top plate to the metal frame and carefully set them aside. These screws are important for later steps when you'll need to reattach the metal frame.
After removing the screws, carefully detach the eight plastic holders from the side. Remember to keep the screws and nuts in a safe place, as they will be needed later.
The MR B3RB car should look like this in the pre-production unit after opening the box.
Proceed to install the LED lights. Follow the image sequence for assembling the front part of the car pieces:
Do NOT overtighten the screws and nuts holding the LED light assembly together. Just snug them up to the point that the lens and bumper assembly doesn't move easily.
UPDATING: Production units will not include the notch in the clear lenses
This is a pre-production prototype. We have found that it is better to install the lenses so the notch cutout does NOT clear the connector and instead sits on TOP of the connectors. This helps prevent over tightening.
The clear lenses generally have brown protective paper film that must be removed before use.
Find the 13mm long screws in the kit of black screws included in the kit. Reuse the lock nuts that were originally installed.
See this link for clarification on the correct screws to use: https://app.gitbook.com/o/-L9GLsni4p7csCR7QCJ8/s/U93yDWZcgjXGgsC1Duqv/~/changes/153/whats-in-the-box/witb-mr-b3rb-bmf#fastener-screw-m3-x-0.5-x-5.0mm-hex-drive-button-head-s.no.-16-fastener-screw-m3-x-0.5-x-10mm-hex-dr
Note: the polycarbonate lens has a cutout, due to assembly changes, it no longer matters if this is facing upward or downward.
The front part of the car should appear as follows:
Repeat the same assembly process for the rear of the car. Note that the back piece is identical to the front one but slightly longer.
The MR B3RB car should look like this in the pre-production unit after opening the box.
Proceed with attaching the side parts of the car.
Re-use the screws and locknuts that held the top plate to the side metal, that you took out previously
UPDATING: The production units will include the larger side plastic skirts instead of the small plastic clips shown below. It will no longer be required to remove the top plate screws and clips.
Once attached, the side components should look like this. To better illustrate the process, one side is shown attached while the other remains detached.
The mount for the camera must be removed for MR-B3RB-M use, It is kept only when using the MR-B3RB-S KEEP the nut and screw that is in this original camera mount!
UPDATING: Production units will include a mount with the backside cut out. This allows the flex cable to not be captive and the mount and camera can be easily separated.
Unless you REALLY want to keep the Camera mount, the easiest and quickest way to remove the mount is to use some side cutters and break the plastic base. Be careful and wear safety glasses as this plastic may be brittle and fly up. Alternatively you could cut this with a hacksaw or rotary tool. Be careful of any dust. While doing either method, be very careful not to damage the camera flex cable
First, unscrew and remove the screws located at the corners of the board.
Then take out the white case, you should have something that look like this:
Then use the smallest hex key from the provided set to unscrew the screws on the corners of the blue case. This should allow you to detach the white case from the bottom. Note you don't have to remove the screws completely, just enough to detach them from the back plate.
The camera's flat ribbon cables is connected to a vertical connector situated in centre-right of the board.
To properly detach the camera, first, open the clip at the backside of the connector to release the ribbon cable. Once freed, you can remove it from the camera mount. To reconnect, carefully insert the flat ribbon cable back into the connector on the NavQPlus board. Ensure a secure connection.
Reassemble the board into the white casing using the previously removed screws. Note you should screw in the heatsink screws first while simultaneously pressing to ensure the case is fully closed. Then in a second step install the outer four screws.
Next, use the provided M3 screws to securely attach the board's corners to the following position in the metal frame:
Screw them in from the bottom side. It should look like this:
The following images illustrate the method for securing the cables to the metal frame using zip ties. This ensures a neat and organized setup.
After successfully attaching the NavQPlus, the next step is to install the MR-CANHUBK344 evaluation board.
We will now mount the NavQPlus and The MR-CANHUBK344 to the metal top plate. Follow the steps in the next two sections. The final setup will look something like this:
UPDATING: The panel mount part is no longer used in the Pre-production B3RB and has been replaced with the The production unit will replace the mount shown here. Please use the rotating mount if it has been provided.
This step needs this 3D printed part:
And this cable:
Attach the two screws in this position:
Now you need to take out the bottom metal frame where the PDB (Power Distribution Board) is attached, make sure to detach the cables connected to the PDB. To take out the metal frame, quit the highlighted screws in the following image:
Now use two M3*6mm screws and two M3 nuts from this box:
And securely attach the XT60 panel mount and the cable adapter in this position:
UPDATING: Production units will instead include a 3d printed plastic standoff post which also acts to protect the cable. The file will also be provided in See image below
Next install this standoff which gives stability for later steps in the mounting of the robot. The screws are the ones that come with the purple standoff and the nut are size M3:
And install it in this position:
S.No. | Item Number | Description | Quantity |
---|---|---|---|
S.No. | Item Number | Description | Quantity |
---|---|---|---|
S.No. | Item Number | Description | Quantity |
---|---|---|---|
S.No. | Description | Quantity |
---|---|---|
S.No. | Description | Quantity |
---|---|---|
UPDATING: Production units will include DUAL LOCK type mounting eliminating the need for the procedure below and screw fastening. This will also elevate the NAVQPLUS boards slightly so that Ethernet and USB will have better clearance. We strongly recommend you just use some DUAL LOCK Velcro instead of screwing the NavQPlus to the metal frame.
Please make sure you can find them. It will also need two screws of 1cm and M2.5 size. You can find them on this box
1.A
700-88954
PWA, NAVQ-PLUS-2A
1
1.B
700-89912
PWA, 8MPNAVQ-808-G
1
1.C
800-76568
ENCLOSURE, NAVOPLUS ENCLOSURE KIT WITH HEATSINK
1
2.A
901-77809
HW ACCESSORY, FIXED FOCUS CAMERA MODULE, CMOS S.MMP
1
2.B
800-78571
ENCLOSURE, ASSY, SCOOR Resin, NRR-NOCAM-CIV5648
1
17.A
280-78113
FASTENER, SCREW, M3-0.5X12, SOCKET HEAD, SS
4
17.B
280-78116
FASTENER, SCREW, 10-02x3/4", SOCKET HEAD, ss
1
17.C
269-78117
FASTENER, NUT, 10-32, HEX, 55
1
17.D
801-77546
BRACKET, MOUNT, White Resin, MR-NQCAM-OV5645
1
17.E
260-77408
PRE-CUT DOUBLE-SIDED FOAM SQUARES # 1/16" thick, 1/2 x 1/2"
4
1.A
Lidar "Arch"
1
1.B
Decorative Top Cover
1
1.C
Side Skirts
2
2.A
Side Plastic Panels
4
2.B
Front Plastic Shield with Mount for Camera
1
2.C
Back Plastic Shield
1
2.D
Covers for LEDs (Transparent)
2
2.E
Front Plastic Panel for LEDs
1
2.F
Back Plastic Panel for LEDs
1
The MR-B3RB is versatile and can support several network wiring configurations. There are also several optional connections. This section will serve to show the BASELINE connections. We will also attach cables that may not be used, but should stay with the B3RB for future expansion
Provide power to the NavQPlus and MR-CANHUBK344
Connect the two with T1 Ethernet
Attach the LIDAR to the NavQPlus
Attach the SERVO and Motor Control PWM to the MR-CANHUBK344
Quadrature encoding from the motor/PDB to the MR-CANHUBK344
Connect the RGB LED lighting
Have debuggers and consoles attached
Optionally plug in unused RC-PWM input
Optionally connect CAN-FD cables, which could be used for peripherals and attachments
(Optionally) connect a serial console from the MR-CANHUBK344 to the NavQPlus <<TODO - add link to section that removes the jumper on the PDB. Add PDB wiring section>>>
The final setup with al the established connections should look like this: <<<TODO UPDATE PHOTOS FROM HERE ON >>>
A closer view on the connection on MR-CANHUBK344:
And in the NavQPlus:
Please follow the steps 3a and 3b for the detailed explanation on these connections.
MR-CANHUBK344 is the real time controller board for the robot. After successfully attaching the NavQPlus, the next step is to install the MR-CANHUBK344 evaluation board.
The materials needed for this tutorial are the MR-CANHUBK344, MR-CANHUBK344 ADAP board and the plastic covers of the boards:
Assemble the MR-CANHUBK344 on the bottom plastic then add the top cover. Use included screws to screw from the bottom side up into the top cover. The plastic top and bottom cover and board assembly should not be loose when properly assembled.
NOTE the MR-CANHUB-ADAP must have the extra board edges snapped off at the break lines. Gently break off the edges of the MR-CANHUB-ADAP board.
Attach the MR-CANHUBK344 assembly to the top plate which already contains the NavQPlus board. The final setup should look like this:
The MR-CANHUBK344 board should be attached in the highlighted holes of the following image. M3x5mm screws should be used to screw in from the bottom side.
Upon completion, the entire assembly should appear as follows:
NOT all kits include the GPS module. Notably the NXP-CUP car kit will not. Instead use the PX4ARMINGBOARD BOARD and stick it down in a convenient location.
The arming board will provide the same beeper and arming buttons. It doesn not (currently) include a compass component.
If provided in your kit, please install the GPS and GPS post mounting, The the pieces needed are listed in the WITB GPS Module page.
Important notes: 1) Install the base plate with the clamping screw pointing either forward-right or forward-left. This will allow you to loosen/tighten even when the plastic rear piece is installed.
2) install the GPS so that the arrow is pointing forward on the B3RB
3) Zip tie the cable so that it stays tight against the carbon fiber mounting tube. This is to minimize interference with the LIDAR beam
4) Don't tighten down the mast clamping scews, you will need to remove the GPS top or the GPS and the MAST in future steps. Tighten them only enough so the parts can still wiggle and be removed.
There is a set of screws that comes with the GPS unit. Use the 4 longer screws and Nylock Lock Nuts to attach the base mount.
It should be placed in this furthest back position:
Attach the mounting mast rod and fasten it with one of the smaller two screws left. Only loosly tighten these screws. Attach the top mount with the remaining screw. Keep it only loosely tighened as well. It should look like this when completed:
Locate the M10 GPS and the 3M double tape.
Attach the double tape in the center of the top mount.
Carefully align the GPS in the center of this tape. Ensure the arrow on the GPS module is facing forward. The cable of the GPS should be zip tied so it stays very close to the GPS mast in order to not obstruct the LIDAR sensor.
<<TODO - show image of fully connected GPS. Final Picture>>
The Quadrature decoder (QDEC) cable connects from PDB to MR-CANHUBK344. The actual quadrature signals are coming from the encoder on the motor itself. The PDB is used to interface between the different cable types. This signal provides information on how many revolutions, and therefore how far, the robot has travelled and is used in the control system as an input.
Pre-production MR-B3RB must use the special QDEC cable with the orange markings. There will be an updated PDB V2 which corrects this issue and allows for a standard cable to be used.
This cable is crucial for calculating the odometry, speed and direction of the robot car. The cable should look like this:
One end of the cable must be attached to the QDEC out pin on the PDB:
And the other end must be attached to the following pin on the MR-CANHUBK344:
Snap off the edges of the MR-CANHUB-ADAP board with your fingers
Wiring instructions will be demonstrated using images and GIFs for clearer visualization of the process.
The RGB LEDS communicate using a modified SPI type that is unidirectional. The power for the LEDs is supplied by the PDB, and the SCL SDA lines attach to a SPI port on the MR-CANHUBK344
You need to have mounted first the LED lights and covers. This step has been explained in this section: #assemble-led-light-and-covers
First, we'll show hot to connect the LEDs cables from the LEDs panels to the PDB and the MR-CANHUBK344.
Use the 4-pin cable with a protective covering to connect from the front to the rear LED assembly ends.
Connect the rear LED to the PDB (Power Distribution Board) and the MR-CANHUBK344.
The following image shows the LED lights setup with the left side representing the rear and the right side indicating the front of the car.
The following images show a zoomed vision of the wiring:
The remaining pin is this one:
That must be connected on the following pin of the MR-CANHUBK344:
If you have correctly followed these steps the wiring setup of the LEDs cables should be finished.
The camera housing included with the NavQPlus mounts to the front "GoPro" style mount on the front plastic:
You must reuse the screw and bolt that was part of the original camera mount. (This is from the white plastic mount included with the NavQPlus) Follow earlier instructions to remove the mount from around the cable if necessary.
The camera flex cable should come out the back of the NavQPlus and loop over top of it. Then route under the lower edge of the front bracket. and up into the camera module. The final setup should look like this: