ROS
1. コマンドとcatkin_wsの作り方、turtle-simの動かし方、動作結果について。 I’ll upload how to make catkin_ws, how to run turtle-sim and the results.
ROS kineticをraspbian 9.4 Stretchにインストール Installing ROS kinetic to raspbian 9.4 Stretchhow to install ros kinetic to raspbian 9.4 stretch
ROS kineticをraspbian 9.4 stretchにインストールする方法
sudo apt-get install dirmngr
sudo apt-get update
sudo apt-get upgrade
sudo rosdep init
rosdep update
mkdir -p ~/ros_catkin_ws
cd ~/ros_catkin_ws
rosinstall_generator desktop –rosdistro kinetic –deps –wet-only –tar > kinetic-desktop-wet.rosinstall
wstool init src kinetic-desktop-wet.rosinstall
-> wstool update -j4 -t src
—
how to check ROS version; ROSバージョンの確かめ方
rosversion -d
—
making catkin_ws (catkin_wsの作り方):
mkdir -p ~/ros_catkin_ws/external_src
cd ~/ros_catkin_ws/external_src
wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O assimp-3.1.1_no_test_models.zip
unzip assimp-3.1.1_no_test_models.zip
cd assimp-3.1.1
cmake .
make -> X (not able to make; make出来ませんでした)
rosinstall_generator desktop –rosdistro kinetic –deps –wet-only –exclude collada_parser collada_urdf –tar > kinetic-desktop-wet.rosinstall
cd ~/ros_catkin_ws
rosdep install -y –from-paths src –ignore-src –rosdistro kinetic -r –os=debian:stretch
sudo ./src/catkin/bin/catkin_make_isolated –install -DCMAKE_BUILD_TYPE=Release –install-space /opt/ros/kinetic
source /opt/ros/kinetic/setup.bash
(option; オプション):
echo “source /opt/ros/kinetic/setup.bash” >> ~/.bashrc
cd ~/ros_catkin_ws
rosinstall_generator ros_comm ros_control joystick_drivers –rosdistro kinetic –deps –wet-only –tar > kinetic-custom_ros.rosinstall
wstool merge -t src kinetic-custom_ros.rosinstall
wstool update -t src
sudo ./src/catkin/bin/catkin_make_isolated –install -DCMAKE_BUILD_TYPE=Release –install-space /opt/ros/kinetic
-> X (not able to run; 動かせませんでした)
sudo ./src/catkin/bin/catkin_make_isolated –install -DCMAKE_BUILD_TYPE=Release –install-space /opt/ros/kinetic -j4
rosinstall_generator desktop –rosdistro kinetic –deps –wet-only –exclude collada_parser collada_urdf –tar > kinetic-desktop-wet.rosinstall
rosdep install -y –from-paths src –ignore-src –rosdistro kinetic -r –os=debian:stretch
sudo ./src/catkin/bin/catkin_make_isolated –install -DCMAKE_BUILD_TYPE=Release –install-space /opt/ros/kinetic -j2
—–
[100%] Building CXX object modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o
[100%] Building CXX object modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o
-> when running like in the up indication wait over 20 min. 上みたいな表示が出る場合20分間以上待機します
—
how to run turtle-sim (turtle simの動かし方):
roscore
sudo apt-get install ros-kinetic-turtlesim
-> package not found
rosrun turtlesim turtlesim_node
rosrun after running roscore “IN A NEW TERMINAL”
roscoreを動かした後、「新しい端末で」、rosrunします。
端末 (ROSのバージョン; kinetic)
Terminal (rosversion; kinetic)
turtlesim動作結果
turtlesim Conduct Result
Virtual Box上のUbuntu 16.04にROS kineticをインストール
Installing ROS kinetic at Ubuntu 16.04 on Virtual Box
Raspberry Pi上にlubuntu?をインストール
Installing lubuntu? on Raspberry Pi.
2. Gazebo・Rviz・Turtle bot 3について
まあ、著作権が普通に私にありますし、何も結んでもいないため、用途が何か、とかを述べなければ、載せてよいと思います。
(一応、配慮して、すぐには、載せませんでしたが)
# 環境:
Virtual Box 6.1
Ubuntu 18.04.6
ROS melodic
# インストール・設定
ROS melodicをインストールする。 (Ubuntu 20上には、通常入らないみたいである)
http://wiki.ros.org/melodic/Installation/Ubuntu
確認として、普通のturtle simを動かすのと、ROSのPub Sub通信を試して出来るようにしておく。
> rosrun turtlesim turtlesim_node
次のリンクを参考に、turtlebot3をインストールする。 (burgerを設定した)
https://emanual.robotis.com/docs/en/platform/turtlebot3/quick-start/
次のリンクを参考に、Gazeboをインストールする。
https://gazebosim.org/tutorials?tut=ros_installing&cat=connect_ros
Gazebo起動時に真っ暗な画面が出た時には、次のコマンドを~./bashrcの最後に追加する。
export LIBGL_ALWAYS_SOFTWARE=1
次のリンクを参考に、rvizをインストールする。
https://symfoware.blog.fc2.com/blog-entry-2285.html
—
>>>>> 障害物にぶつからずに動き続ける方法 (1)
次を参考に、ros_practiceパッケージを作成する。
https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/ROS/index3.html#autonomous
>>>>> 次を、それぞれ、別の「端末」で起動し動作を確認する。
roslaunch turtlebot3_gazebo turtlebot3_world.launch
rosrun ros_practice auto.py ※※※ (PG 1; このPGは、ネット情報を参考に自作したが非公開) ***
auto.pyは別にPGを示す。
–
>>>>> 障害物にぶつからずに動き続ける方法 (2)
次を参考にmove_baseに必要なプログラムをビルドする。
次のPGを動かす。
*** (PG2; このPGも、ネット情報を参考に自作したが非公開) ***
自律移動パッケージの準備
https://moriokalab.com/news/103
melodic以前は、古いバージョンをインストールする。
https://tomson784.github.io/ros_practice/Navigation/move_base.html
> git clone https://github.com/ros-planning/navigation.git -b 1.16.7 –depth 1
> sudo apt install -y ros-melodic-move-base-msgs ros-melodic-amcl ros-melodic-joy ros-melodic-move-base ros-melodic-urg-node ros-melodic-map-server
次を参考に、map.pgmとmap.yamlを作成する
https://potblog.hatenablog.com/entry/2018/05/17/233426
map作成には次のコマンドを入力してスキャンする等の方法がある。
> roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
> roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
mapは次の場所に保存する。
$ mkdir ~/maps
$ rosrun map_server map_saver -f ~/maps/world_map
次のページを参考にGoalを設定する
move_baseのGoalを設定
https://daily-tech.hatenablog.com/entry/2017/02/11/214336
>>> 「障害物にぶつからずに動き続ける」PGを動かすのに使うコマンド
> 起動
( 0. <必要に応じて>
roscore
)
1. Gazeboを起動する
roslaunch turtlebot3_gazebo turtlebot3_world.launch
2. RVizをmap付きで起動する
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
rosrun rviz rviz -d `rospack find turtlebot3_navigation`/rviz/turtlebot3_nav.rviz
3. PG 2 (/home/username/catkin_ws/src/simple_goal_generator/src/simple_goal_generator.cppを動かす)
rosrun simple_goal_generator simple_goal_generator_node
—
その他、必要に応じて打つとよいコマンド
> roscore等の関係でGazeboが起動しなくなった場合は次を実行
killall gzclient
killall gzserver
> turtlebot3標準Worldを起動
roslaunch turtlebot3_gazebo turtlebot3_world.launch
(
> turtlebot3 empty worldを起動
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
>> simulation
roslaunch turtlebot3_gazebo turtlebot3_simulation.launch
)
===========================
参考情報:
catkin_makeでビルド出来ない場合は、catkin_make_isolatedを使ってビルドする
インストール時のエラー対処は次のようにする。
https://answers.ros.org/question/305640/cmake-warning-has-occurred/
他参考サイト:
https://github.com/project-srs/ros_lecture
https://wiki.ros.org/navigation/Tutorials/RobotSetup
https://qiita.com/protocol1964/items/1e63aebddd7d5bfd0d1b
https://demura.net/robot/ros2/20761.html
https://qiita.com/MoriKen/items/0b75ab291ab0d95c37c2
https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/ROS/index35.html#prog1
https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/ROS/index4.html
https://qiita.com/MoriKen/items/8387b279e968368783f1
https://qiita.com/MoriKen/items/d5cd6208143d6c40caff
https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/ROS/index3.html#autonomous
https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/ROS/index35.html
https://question2430.rssing.com/chan-39251146/article21-live.html
https://robo-marc.github.io/navigation_documents/costmap_2d.html
https://answers.ros.org/question/337695/pointing-turtlebot-to-the-target-position-before-moving/
http://docs.ros.org/en/groovy/api/moveit_ros_planning_interface/html/group__set__pose__goal.html
https://question2430.rssing.com/chan-39251146/article21-live.html
http://docs.ros.org/en/groovy/api/moveit_ros_planning_interface/html/group__set__pose__goal.html