I Formula is a technical challenge in which robot cars drive autonomously on a race course given a mission. Through competing for speed and intelligence in a real-world environment, AI Formula will provide an opportunity for rising engineers to acquire the skills and technology necessary for next-generation mobility research. This repository is the foundation of the AIFormula system.
Functions to be provided in this package:
- common (Util libraries for c++ and python)
- control (Control motor)
- launchers (Manage launch and shell files for each package)
- sensing (Camera, Imu)
- vehicle (Include intrinsic and extrinsic params)
- simulator
- docker
- perception (coming soon)
- planning (coming soon)
- ROS2 Foxy (Ubuntu 20.04)
- ZED SDK
- ZED ROS2 wrapper
- VectorNav
- ros2_socketcan
-
Local Environment:
Clone this repository and build:
Note: This package contains submodules. If the build of a submodule fails, please refer to the original packages (linked above).mkdir -p ~/ros2_ws/src/ # create your workspace if it does not exist cd ~/ros2_ws/src/ #use your current ros2 workspace folder git clone --recursive https://github.com/open-rdc/aiformula.git git clone https://github.com/autowarefoundation/ros2_socketcan.git cd .. colcon build --symlink-install # build the workspace source ~/ros2_ws/install/local_setup.bash
-
Docker Environment:
To start docker:git clone https://github.com/aiformula-support/aiformula.git cd ./aiformula/docker ./docker_build_aiformula_foxy_amd.sh ./docker_run_aiformula_foxy_amd.sh
To connect can, and device
cd ~/ros2_ws/src/aiformula/launchers/shellscript/
./init_sensors.sh
To start all nodes of aiformula:
Note: This command launches the following nodes: camera data, imu data, can data, motor controller, tf, joy.
ros2 launch launchers all_nodes.launch.py
Under developping
Original simulation environment
ros2 launch simulator gazebo_simulator.launch.py
Simulation environment considering caster trail
ros2 launch simulator gazebo_simulator_caster_trail.launch.py
Simulation environment considering active caster
ros2 launch simulator gazebo_simulator_active_caster.launch.py
ros2 topic pub /position_controller/commands std_msgs/Float64MultiArray "data: [1.0]"
Control by Joystick
ros2 launch teleop_twist_joy teleop-launch.py