Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS 2 packages for RoboCup SSL beginner. / RoboCup SSL初心者のための ROS 2パッケージ |
| Checkout URI | https://github.com/ssl-roots/consai_ros2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-05-19 |
| Dev Status | UNMAINTAINED |
| CI status | No Continuous Integration |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- shotaak
Authors
consai_examples
CON-SAIの使い方がわかるチュートリアルパッケージです。
Robocup SSLソフトウェアの設定
Vision(SSL-Vision、grSim)、Referee(SSL Game Controller)、Sim(grSim) のデータ配信先アドレスとポートを設定します。
- Vision
- アドレス: 224.5.23.2
- ポート: 10006
- Referee
- アドレス: 224.5.23.1
- ポート: 10003
- Sim
- アドレス: 127.0.0.1
- ポート: 20011
consai_vision_trackerでビジョンの情報を取得する
次のコマンドを実行します。
ros2 launch consai_examples start.launch.py
ビジュアライザが起動し、ビジョンの情報が表示されます。

ウィンドウ右側にあるLayerの各項目にチェックを入れることで、 表示コンテンツをON/OFFできます。
consai_robot_controllerでロボットを動かす
次のコマンドを実行します。 このコマンドは、ビジュアライザだけでなくロボットコントローラも起動します。
ros2 launch consai_examples start.launch.py
別のターミナルで、pythonスクリプトを実行します。
ros2 run consai_examples control.py
解説
control.pyはconsai_robot_controllerの使い方を知るためのスクリプトです。
引数のexampleをセットするとロボットの動きを変更できます。
# ヘルプの表示
ros2 run consai_examples control.py --help
...
--example EXAMPLE 実行したい関数の番号
0: move_to
1: chase_ball
2: wait_ball_and_shoot
3: receive_ball_and_shoot
4: pass_ball_between_robots
5: move_to_between_ball_and_center
6: defend_our_goal
# 2: wait_ball_and_shootを実行
ros2 run consai_examples control.py --example=2
ロボット、ボール情報を上下左右反転する
consai_visition_trackerのinvertパラメータをTrueにすると、
ロボットとボールの情報を上下左右反転できます。
これは、試合プログラムを変更しなくてもコートチェンジできるため便利です。
次のようにコマンドを実行すると、’invert’パラメータを’True’にできます。
# 引数invert:=trueを追加
ros2 launch consai_examples start.launch.py invert:=true
# ロボットを動かす
ros2 run consai_examples control.py
黄色チームのロボットを動かす
黄色チームのロボットを動かす場合は次のようにコマンドを実行します。
# 引数yellow:=trueを追加
ros2 launch consai_examples start.launch.py yellow:=true
# pythonの引数--yellowを追加
ros2 run consai_examples control.py --yellow
refereeコマンドに合わせてロボットを動かす
次のコマンドを実行して、コントローラを起動します。
ros2 launch consai_examples start.launch.py
別のターミナルで、pythonスクリプトを実行します。
ros2 run consai_examples control_by_referee.py
レフェリー信号を切り替えると、次のようにログが表示され、ロボットの動きが変わります。
[INFO] [1708672811.560434873] [operator]: blueロボットを動かします
[INFO] [1708672811.562706550] [referee_parser]: ourteamはblueです
halt
HALTではロボットを動かしてはいけません
ロボットが止まるまでに2秒の猶予があります
stop
STOPでは、全てのロボットは1.5 m/s未満に減速しなければなりません
全てのロボットはボールから0.5メートルの距離を取らなければなりません
ボールを蹴ったりドリブルしたりしてはいけません
解説
control_by_referee.pyはrefereeトピックの使い方を知るためのスクリプトです。
試合をする
start.launch.pyに引数game:=trueをセットすると、試合用のスクリプトが起動します。
ros2 launch consai_examples start.launch.py game:=true
また、黄色ロボットを動かすためのyellow、
逆サイドで動かすためのinvert、
ゴールキーパーIDのgoalieオプションも設定できます。
# 黄色ロボットを動かす かつ
# 逆サイド かつ
# ゴールキーパのIDが2
ros2 launch consai_examples start.launch.py game:=true yellow:=true invert:=true goalie:=2
CON-SAI vs CON-SAIで試合をする
環境変数ROS_DOMAIN_IDを設定することでROSのネットワークを分離できます。
これを応用して、CON-SAI vs CON-SAIで試合ができます。
# 青色チームを起動
ROS_DOMAIN_ID=1 ros2 launch consai_examples start.launch.py game:=true
# 別のターミナルで、逆サイドの黄色チームを起動
ROS_DOMAIN_ID=2 ros2 launch consai_examples start.launch.py game:=true yellow:=true invert:=true
ロボットの実機を動かす
CON-SAIはFrootsPi を搭載したロボットを動かすことができます。
FrootsPi側のROS_DOMAIN_IDと同じものを設定し、start.launch.pyを実行してください。
Wiki Tutorials
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest | |
| ament_uncrustify | |
| ament_cpplint | |
| consai_msgs | |
| consai_tools | |
| launch_ros | |
| rclpy |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| consai |