CON-SAIはRoboCup SSLに 初めて参加する人でも開発できるサッカーAIです。
CON-SAI stands for CONtribution to Soccer AI.
- Linux OS
- Ubuntu 22.04 tested and is recommended
- ROS 2
- consai_frootspi_msgs
- CON-SAIとFrootsPiが通信するために必要なパッケージです
- RoboCup SSL Official Softwares (Optional)
docker pull ghcr.io/ssl-roots/consai_ros2:main
Dockerを用いたCON-SAIの開発方法については.docker/README.mdを参照してください
# Setup ROS environment
source /opt/ros/humble/setup.bash
# Create working directory
mkdir -p ~/ros2_ws/src
# Download consai_ros2
cd ~/ros2_ws/src
git clone https://github.com/SSL-Roots/consai_ros2.git
git clone https://github.com/SSL-Roots/consai_frootspi_msgs.git
git clone https://github.com/SSL-Roots/frootspi_msgs.git
# Install dependencies
rosdep install -r -y -i --from-paths .
# Build & Install
cd ~/ros2_ws
colcon build --symlink-install
# Setup working directory's environment
source ~/ros2_ws/install/setup.bash
# Start grSim and ssl-game-controller, then
source ~/ros2_ws/install/setup.bash
ros2 launch consai_examples start.launch.py game:=true
CON-SAIの使い方はconsai_examplesのREADMEを参照してください。
- consai
- メタパッケージ
- consai_examples
- CON-SAIの各種パッケージを使ったサンプル集です
- consai_msgs
- CON-SAIで使用するデータ型を定義するパッケージです
- consai_robot_control_utils
- ロボットの走行制御をテストするためのパッケージです
- consai_robot_controller
- ロボットの走行、キック、ドリブル制御を担うパッケージです
- consai_vision_tracker
- ビジョン情報をフィルタリングするパッケージです
- consai_visualizer
- ビジョン情報やロボットの走行情報を描画するパッケージです
- consai_visualizer_msgs
- consai_visualizerで使用するデータ型を定義するパッケージです
- robocup_ssl_comm
- SSL-Vision、SSL-Game-Controller、grSimのデータパケットをROS 2のトピックに変換するパッケージです
- robocup_ssl_msgs
- SSL-Vision、SSL-Game-Controller、grSimのデータプロトコルをROS 2のデータ型に再定義するパッケージです
(C) 2021 Roots
各ファイルはファイル内に明記されているライセンスに従います。 ライセンスが明記されていない場合は、Apache License, Version 2.0に従います。 ライセンスの全文はLICENSEから確認できます。
CON-SAIを開発する際にこの項目を読んでください。
- 本ソフトウェアはオープンソースですが、開発はオープンではありません
- チームの開発方針を優先するため、外部からのIssue、Pull Requestには対応できない場合があります
コードの見た目を整えるためにlintでチェックしています。
下記コマンドを実行して、チェックを実行してください。
$ cd ~/ros2_ws
# 全てのパッケージのテストを実行
$ colcon test
# あるいは、パッケージ名指定でテストを実行
$ colcon test --packages-select robocup_ssl_comm
# テスト結果を表示
$ colcon test-result --verbose
C++のコードはament_uncrustify
を使って、自動で整形できます。
# フォーマットのチェック
$ ament_uncrustify robocup_ssl_comm/src/vision_component.cpp
# --reformat オプションで自動整形
$ ament_uncrustify --reformat robocup_ssl_comm/src/vision_component.cpp
Pythonのコードはament_flake8
を使って、フォーマットとチェックできます。
自動整形はできません。
$ ament_flake8 consai_examples/consai_examples/control.py
外部ツール(例:autopep8)を使えば自動整形できます。 ROS 2のPythonコードスタイル に沿うようにパラメータを設定してください。
$ sudo apt install python3-autopep8
# 1行の100文字に制限
# -i オプションで自動整形
$ autopep8 --max-line-length 99 -i consai_examples/consai_examples/control.py