cvra / Robot Software
Licence: mit
CVRA monorepo - All software running on our bots lives here
Stars: ✭ 39
Programming Languages
c
50402 projects - #5 most used programming language
Projects that are alternatives of or similar to Robot Software
Awesome Canbus
🚛 A curated list of awesome CAN bus tools, hardware and resources
Stars: ✭ 73 (+87.18%)
Mutual labels: stm32, embedded, can-bus
List of robot electronics
A curated list of awesome open source electronic resources for robotics
Stars: ✭ 106 (+171.79%)
Mutual labels: robotics, robot, embedded
Libcanard
A compact implementation of the UAVCAN/CAN protocol in C for high-integrity real-time embedded systems
Stars: ✭ 151 (+287.18%)
Mutual labels: robotics, embedded, can-bus
Tf Pose Estimation
Deep Pose Estimation implemented using Tensorflow with Custom Architectures for fast inference.
Stars: ✭ 3,856 (+9787.18%)
Mutual labels: robotics, embedded
Poppy Humanoid
Poppy Humanoid is an open-source and 3D printed humanoid robot. Optimized for research and education purposes, its modularity allows for a wide range of applications and experimentations.
Stars: ✭ 419 (+974.36%)
Mutual labels: robotics, robot
Awesome Robotics
A curated list of awesome links and software libraries that are useful for robots.
Stars: ✭ 478 (+1125.64%)
Mutual labels: robotics, robot
Jetson Inference
Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson.
Stars: ✭ 5,191 (+13210.26%)
Mutual labels: robotics, embedded
Hexapod Robot Simulator
A hexapod robot simulator built from first principles
Stars: ✭ 577 (+1379.49%)
Mutual labels: robotics, robot
Fido
A lightweight C++ machine learning library for embedded electronics and robotics.
Stars: ✭ 404 (+935.9%)
Mutual labels: robotics, embedded
Hexapod
Blazing fast hexapod robot simulator for the web.
Stars: ✭ 370 (+848.72%)
Mutual labels: robotics, robot
Handeye calib camodocal
Easy to use and accurate hand eye calibration which has been working reliably for years (2016-present) with kinect, kinectv2, rgbd cameras, optical trackers, and several robots including the ur5 and kuka iiwa.
Stars: ✭ 364 (+833.33%)
Mutual labels: robotics, robot
Open Source Rover
A build-it-yourself, 6-wheel rover based on the rovers on Mars!
Stars: ✭ 6,903 (+17600%)
Mutual labels: robot, robotics
Awesome Embedded
A curated list of awesome embedded programming.
Stars: ✭ 831 (+2030.77%)
Mutual labels: stm32, embedded
Ros Academy For Beginners
中国大学MOOC《机器人操作系统入门》代码示例 ROS tutorial
Stars: ✭ 861 (+2107.69%)
Mutual labels: robotics, robot
Teenyusb
Lightweight USB device and host stack for STM32 and other MCUs.
Stars: ✭ 287 (+635.9%)
Mutual labels: stm32, embedded
Robot software stack
This repo contains all the software used on our robots:
-
can-io-firmware
contains the firmware that runs on the IO board -
motor-control-firmware
contains the firmware that runs on the motor board -
proximity-beacon-firmware
contains the firmware that runs on the proximity beacon, it's the same code as the motor board but with a different application that is tailored to the needs of our proximity beacon module -
master-firmware
contains the software that runs on the master board, it interfaces all the other boards over CAN and runs the robot's "intelligence". -
eurobot
contains documentation and cofiguration files specific to the Eurobot competition -
sensor-firmware
contains code running on the sensor board -
uwb-beacon-firmware
contains code and documentation that runs on the UWB beacon board -
hitl
contains code to support Hardware In The Loop testing of the master board firmware.
Other important software components can be found in this repo:
-
lib
contains all the libraries and building blocks we use on multiple boards, which includes:-
lib/can-bootloader
the bootloader that allows us to update our boards (IO and motor) over CAN -
lib/ChibiOS
the RTOS/HAL we use on all our boards -
lib/uavcan
the CAN communication library we use on all our boards -
lib/error
a logging library -
lib/parameter
a library to create and manage configurations of boards -
lib/msgbus
a publish/subscribe library for inter thread communication - and more.
-
-
tools
groups all tools we use to develop on the robot including:-
tools/pid-tuner
a GUI to tune PID gains of motor boards over CAN, written using Python and Qt -
tools/studio
a set of introspection tools written in Python and Qt to debug our robots
-
-
uavcan_data_types
contains the custom message definitions (DSDL) for the UAVCAN communication protocol -
ci
groups scripts and Docker files for our continuous integration server -
user-guide
contains high-level documentation about software and electronics components used on our robots
The user guide is generated using mdbook from doc/user-guide
Building with CMake
To build one platform with cmake, for example here our UWB beacon board:
mkdir build-uwb && cd build-uwb
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/uwb-beacon.cmake
# WARNING: Make all or make without target does not work.
make uwb-beacon-firmware.elf
# The resulting firmware is at `uwb-beacon-firmware/uwb-beacon-firmware.elf`.
To build the unit tests for all the boards:
mkdir build
cd build
cmake ..
make all test
Coding style
We use clang-format
(tested with version 7 or greater) to enforce proper source code formatting.
You can use the format-all.sh
script in the root directory to format the whole source tree.
You can also use clang-format -i --style=file src/foo.c
to format a particular file.
Finally, some editors include support for clang-format
through plugin, check for yourself.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].