※__注意未整理です __
iRobotCreate2は掃除をしないRoomba600 seriesです。 なので以下はRoomba600 seriesでも適用出来ます。
こちらを参考 http://wiki.ros.org/melodic/Installation/Ubuntu
※ 変更点は最小構成にしたいのでros-melodic-ros-baseを入れている事
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
最小構成にしたい
sudo apt install ros-melodic-ros-base
依存関係でエラーが出たら指示どおり以下
sudo apt --fix-broken install
sudo apt install python-pip
sudo -H pip install rosdep
sudo rosdep init
sudo rosdep update
sudo apt-get install python-catkin-tools
sudo apt install -y python-rosinstall
sudo apt install -y build-essential
catkin_makeからcatkin buildに変更する前提ですすすめる そのため必要
sudo apt install -y python-catkin-tools
入れてみる(いらないかも)
sudo apt install python-rosinstall-generator
sudo apt install python-wstool
bashrcに記述
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
反映
source ~/.bashrc
init(最初だけする)
source /opt/ros/melodic/setup.bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
source devel/setup.bash
build(何か変更したら)
source /opt/ros/melodic/setup.bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin build
source devel/setup.bash
Raspberry Pi3では通常4コア並列のビルドが走るそうですが、メモリ不足でフリーズするので -j2オプションで2コア下げてbuildする
catkin build create_autonomy -j2
電圧がRaspberryPiは5vでRoombaは3.3V そのためシリアル変換をしないとRoombaが壊れる
基本的にここを参考にする https://karaage.hatenadiary.jp/entry/2017/05/12/073000
RxD→TxD TxD→RxD
RxDが受信、TxDが送信
シリアル通信がはじめてでこれが分からずに数日詰まった。
RaspberryPiとRoobaが繋がったのでRaspberryPiからノートPCにネットワーク間でのトピック通信を行う。 ノートPCからsshでラズパイに入って、ROS_HOSTNAMEとROS_MASTER_URIを設定する。
ssh <IP_RASPI3>
export ROS_HOSTNAME=<IP_RASPI3>
export ROS_MASTER_URI=http://<IP_RASPI3>:11311
前提 IPが以下の場合(※aaとかbbとかは本当は数字、説明用)
RaspberryPi IP:192.168.0.aa
ノートPC IP:192.168.0.bbb
Raspberry Pi
export ROS_IP=192.168.0.aa
ルンバと通信するためのTopicを出力するlaunchを実行
roslaunch ca_driver create_2.launch
ノートPC
ROS_MASTER_URI=http://192.168.0.aa:11311/
export ROS_IP=192.168.0.bbb
rostopic list
topicが出てくる見れるようになる
/battery/capacity
/battery/charge
/battery/charge_ratio
/battery/charging_state
/battery/current
/battery/temperature
/battery/voltage
/bumper
/check_led
/clean_button
/cmd_vel
/day_button
/debris_led
/define_song
/diagnostics
/dock
/dock_button
/dock_led
/hour_button
/ir_omni
/joint_states
/minute_button
/mode
/odom
/play_song
/power_led
/rosout
/rosout_agg
/set_ascii
/spot_button
/spot_led
/tf
/tf_static
/undock
/wheeldrop
Twistが確認出来るのでpubする
rostopic pub -1 /cmd_vel geometry_msgs/Twist -- "[2.0, 0.0, 0.0]" "[0.0, 0.0, 1.8]"
ルンバ動く!