Skip to content

fuzzrobo/ToPoQuad

Repository files navigation

ToPoQuad

セットアップ手順

1. ロボット側の環境設定 (Raspberry Pi 4b と OpenCR)

1.1. Raspberry Pi 4b のセットアップについて

ラズパイにUbuntuがクリーンインストールされている前提で説明します.

1.2. ROS 2 Humble のインストール

ROS 公式のインストールガイドに従って,ROS 2 Humbleをインストールします.

まず,Ubuntu Universe リポジトリが有効になっていることを確認します.

sudo apt install -y software-properties-common
sudo add-apt-repository universe

ROS 2 Humbleをインストールします.

sudo apt update && sudo apt -y install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
sudo apt install -y ros-humble-desktop
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install -y python3-colcon-common-extensions python3-pip

ワークスペースを作成します.

mkdir -p ~/topoquad_ws/src
cd ~/topoquad_ws && colcon build --symlink-install && . install/setup.bash

ワークスペースを設定します.

echo '. ~/topoquad_ws/install/setup.bash' >> ~/.bashrc
source ~/.bashrc

1.3. ToPoQuad用 ROS 2 パッケージのインストール

cd ~/topoquad_ws/src
git clone --recursive git@github.com:fuzzrobo/ToPoQuad.git -b humble-devel
cd ~/topoquad_ws && colcon build --symlink-install && source install/setup.bash

$ git clone ...でエラーが出る場合は,以下を実行して git をインストールしてください.

sudo apt update
sudo apt install -y git

インストールが完了したら,再度上記の git clone 以降のコマンドを実行してください.

1.4. ttyACM0へのアクセス権を付与

wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules
sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
rm ./99-opencr-cdc.rules

1.5. OpenCRのセットアップ

OpenCRをにファームウェアを書き込み,dynamixelとの通信とOpenCR内のIMUデータをRaspberry Piに送信できるようにします.

Arduino IDEを用いて,topoquad_master/opencr/usb_topdxl_imu/usb_to_imu.inoをOpenCRボードに書き込みます.

Arduino IDEのインストール方法やOpenCRのセットアップ方法については,以下を参照してください.
Open CR v1.0 公式サイト

1.6. SSH接続の設定

Raspberry Piをホストとして,ssh接続できるように設定します.

sudo apt update
sudo apt install -y openssh-server
sudo reboot

再起動後,以下のコマンドでraspberry piのIPアドレスを確認し,メモします.

hostname -I

2. リモートPCの環境設定

2.1. リモートPCのセットアップについて

ロボットを完全自律で動かす場合を除き、リモートPC側にもROS 2環境やドライバをインストールする必要があります。

2.2. ROS 2 環境のセットアップ

ROS 2 がインストールされている前提で説明します.

ワークスペースを作成します.

mkdir -p ~/topoquad_ws/src
cd ~/topoquad_ws && colcon build --symlink-install && . install/setup.bash

ワークスペースを設定します.

echo '. ~/topoquad_ws/install/setup.bash' >> ~/.bashrc
source ~/.bashrc
ROS 2 がインストールされていない場合は 1.2. ROS 2 Humble のインストールと同様に導入してください. ROS 公式のインストールガイドに従って,ROS 2 Humbleをインストールします. まず,Ubuntu Universe リポジトリが有効になっていることを確認します.
sudo apt install -y software-properties-common
sudo add-apt-repository universe

ROS 2 Humbleをインストールします.

sudo apt update && sudo apt -y install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
sudo apt install -y ros-humble-desktop
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install -y python3-colcon-common-extensions python3-pip

ワークスペースを作成します.

mkdir -p ~/topoquad_ws/src
cd ~/topoquad_ws && colcon build --symlink-install && . install/setup.bash

ワークスペースを設定します.

echo '. ~/topoquad_ws/install/setup.bash' >> ~/.bashrc
source ~/.bashrc

2.3. ToPoQuad用 ROS 2 パッケージのインストール

cd ~/topoquad_ws/src
git clone --recursive git@github.com:fuzzrobo/ToPoQuad.git -b humble-devel
cd ~/topoquad_ws && colcon build --symlink-install && source install/setup.bash

$ git clone ...でエラーが出る場合は,以下を実行して git をインストールしてください.

sudo apt update
sudo apt install -y git

インストールが完了したら,再度上記の git clone 以降のコマンドを実行してください.

2.4. その他のROS 2パッケージのインストール

sudo apt install ros-humble-plotjuggler
sudo apt install ros-humble-plotjuggler-ros
sudo apt install ros-humble-teleop-twist-keyboard 

2.5. Raspberry PiへのSSH接続の確認

1.6. SSH接続の設定で確認したRaspberry PiのIPアドレスを用いて,以下のコマンドでssh接続できることを確認します.

ssh your_username@<Raspberry_PiのIPアドレス>

3. 実機での動かし方

3.1. セットアップ

RasPiにssh接続して以下のコマンドを実行

ros2 launch topoquad_bringup hardware.launch.py

3.2. 自律でサンプル歩容を試す

RasPiにssh接続して以下のコマンドを実行

# 新しいターミナルで実行
ros2 launch topoquad_control sample_walk.launch.py

3.3. テレオペで動かす

  • コントローラで動かす場合
ros2 launch topoquad_control teleop_joy_ps4.launch.py
  • キーボードで動かす場合 リモートPCで以下のコマンドをそれぞれ別のターミナルで実行
# 新しいターミナルで実行
ros2 run topoquad_control twist_node --ros-args --remap __ns:=/topoquad
# 新しいターミナルで実行
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap __ns:=/topoquad

2つ目のターミナルにカーソルを合わせた状態で適切なキーを押せばロボットが動く

3.4. ロボットの歩容を確認する

リモートPCで以下のコマンドを実行

# 新しいターミナルで実行
ros2 run plotjuggler plotjuggler -l ~/topoquad_ws/src/ToPoQuad/plot_config.xml

出てくるウィンドウでyesを選択。 Select ROS message という window では /topoquad/legs/command, /topoquad/legs/state/goal, /topoquad/legs/state/present, の3つを選択してOK.

その他

Dynamixel の Gain などを変えたくなったら

topoquad_masterパッケージ内のソースコードを編集する必要があります. 例えば足に用いるXC330についてであれば,/topoquad_master/src/leg_node.cpp の以下の領域にある,dynamixel_handler_msgs::msg::DxlCommandsX dyn_msg の各フィールドを修正することで設定の変更が可能です.

    void main_loop(){
        auto now = this->get_clock()->now();
        if (now.seconds() - prev_cmd_time_.seconds() < 0.2) return;
        dynamixel_handler_msgs::msg::DxlCommandsX dyn_msg;
        for (auto& leg : {ref(goal_leg_fr_), ref(goal_leg_fl_), ref(goal_leg_br_), ref(goal_leg_bl_)}) {
            // ... 略 ...
            dyn_msg.status.id_list.push_back( leg.get().hip_yaw_.id_);  
            dyn_msg.status.id_list.push_back( leg.get().hip_pitch_.id_);
            dyn_msg.status.id_list.push_back( leg.get().knee_pitch_.id_);
            dyn_msg.status.error.push_back( false );  
            dyn_msg.status.error.push_back( false );
            dyn_msg.status.error.push_back( false );
        }
        dyn_cmd_pub_->publish(dyn_msg);
    }

詳細な使い方は,dynamixel_handler_msgs の msg 定義を参照してください.

Dynamixel の Baudrate を変えたくなったら

始めに,Raspberry Pi 内の /topoquad_master/config/dynamixel_unify_baudrate.yamltarget_baudrate を変更します.

/**:
    ros__parameters:
    #  指定可能なボーレート
        # 9600    
        # 57600   
        # 115200  
        # 1000000 
        # 2000000 
        # 3000000 
        # 4000000 
    # 通信機器の設定
        device_name: /dev/ttyACM0 # 通信するデバイス名
        target_baudrate: 1000000 # 通信速度
        latency_timer: 1 # 通信のインターバル
    # 探索するサーボの設定
        min_id: 0
        max_id: 40
        min_search_baudrate: 57600
        max_search_baudrate: 4000000

保存した後,Raspberry Pi で以下を実行します..

ros2 launch topoquad_master dynamixel_unify_baudrate.launch.py

接続しているすべてのDynamixelを探索し,ボーレートを統一します.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors