2.6自己起動スクリプトの問題
まず、前のチュートリアルを続けます。すべてのROSノードを起動するコマンドを自動起動スクリプトに入れて、起動後にUbuntuが自動的に実行されるようにします。Ubuntuで自動起動スクリプトの機能を実現するには、2つの方法があります。
ubuntuに付属する最初の種類のスタートアップアプリケーション
最初に新しいmytest.shファイルを作成し、次の内容[6]を入力します。これは、タートルボットノードと小さなタートルを開始する例です
#! /bin/bash
### BEGIN INIT INFO
# Provides: xxxx.com
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: mylaunch service
# Description: mylaunch service test
### END INIT INFO
gnome-terminal -x bash -c "source /opt/ros/kinetic/setup.bash;roslaunch turtlebot_bringup minimal.launch" #新建终端启动节点
sleep 8 #等待8秒
gnome-terminal -x bash -c "source /opt/ros/kinetic/setup.bash;rosrun turtlesim turtlesim_node" &
wait
exit 0
その中で、gnome-terminal -x bash -cは、新しいbashターミナルを作成し、cに続くステートメントを実行することを意味します。コマンドは ';;'
で区切られます!注:それがubuntu 18.04システム[6]の場合、gnome-terminal -x bash- cはgnome-terminal-bash -cに書き直す必要があります
次に、mytest.shファイルの権限を変更します
sudo chmod 777 mytest.sh
ここで、自分で作成した.shファイルが実行できるかどうかをテストするのが最善です
./mytest.sh
ubuntu 1604で「スタートアップアプリケーション」を検索すると、設定ソフトウェアが見つかり
ます
。新しく作成したmytest.shファイルを選択します。ここでは、自動ログインするように現在のアカウントを設定する必要があります。
再起動後、自動的にデスクトップ、次にrosノードに入ります。注(テスト中に、このメソッドはアカウントに自動的にログインするように設定する必要があることがわかりました。これは、デスクトップに入って設定した起動スクリプトを実行した後である必要があります)
2番目のrc.localスクリプトの開始
2つ目は、Ubuntu 1604のスクリプトファイルrc.local(/etc/rc.local)を使用する方法です。ここでは、事前にxxx.shファイルにスタートアップコードを書き込む必要があります(もちろん、コマンドが少ない場合は、 rc.local内のすべてのコマンドを直接アンインストールしてから、rc.localファイルを開き、次のような「exit 0 "の前に自己起動コマンドを追加します。
gnome-terminal --window -x bash -c "sh /home/crp/mytest.sh;exec bash"
ここに別のコマンド形式があります:
gnome-terminal --window -x bash -c "sh /home/crp/mytest.sh;exec bash"
echo 123456| sudo -S
gnome-terminal -t "terminal-name" -X bash -c "sh ./xxx.sh"; exec bash;
このコマンドは、新しい端末を作成し、/ home / crp / xxx.shディレクトリでxxx.shファイルを実行し、スーパーユーザー(パスワード123456)に切り替えてから、新しい端末を作成して別のxxxを実行します.shファイル。
[7] gnome-terminal --window -x bash -cなどのポップアップコマンドが無効です。
3番目のインストールスクリプトサービスが開始します
3番目の方法は、Ubuntuの起動サービスとして起動スクリプトをインストールすることです
。1>起動スクリプト「my_autorun.sh」を/etc/init.d/ディレクトリにコピーします
。2>次に、このスクリプトの権限を変更します。
sudo chmod 755 /etc/init.d/mytest.sh
3>スクリプトサービスのインストール
cd /etc/init.d
sudo update-rc.d mytest.sh defaults 95 #其中95是启动顺序
4>アンインストールスクリプトサービス(インストール中に操作は必要ありません)
cd /etc/init.d
sudo update-rc.d -f mytest.sh remove #其中95是启动顺序
次に、「car_launch.sh」という名前の新しいファイルを作成し、次のコンテンツを追加します。
3まとめ
これまでの3つのブログを通じて、自律型ナビゲーションカーのハードウェアフレームワーク、マッピングのアルゴリズムフレームワーク、ナビゲーションのアルゴリズムフレームワークを整理しました。すべてのコードをこのgithubに置きました。
ハードウェアの記事では、標準のプラットフォームを使用しており、車のシャーシを自分で作成する必要がないため、シャーシの作成手順については触れませんでした。将来的には、自作のROSシャーシを構築する予定です。一般的に、ROSシャーシは線形速度と角度を受け取る必要があります命令では、シャーシはシングルチップマイクロコンピューターによってROSノードと通信し、シングルチップはモーターの閉ループ制御とシャーシの運動学モデルの変換を担当します。さらに、超音波システムや電力管理システムなどの追加のセンサーモジュールがシャーシに必要です。
マップを構築するプロセスでは、マップの作成にgmappingのみを使用しました。gmappingは2D LIDARにのみ適用されます。3DレーザーとRGB-Dカメラはマップの作成に使用できません。したがって、ORB-SLAMを使用してGoogleの地図作成を学ぶためのフォローアップ計画が確立されました3D点群マップ。
モーションプランニングの過程では、move_baseの操作パラメーターを簡単に理解しただけで、多くのパラメーターがあるため、後のプロセスでmove_baseの操作パラメーターをより深く理解する予定です。
参照
【1】https://blog.csdn.net/huaweijian0324/article/details/81142610
【2】https://www.ncnynl.com/category/ros-car/
【3】https://www.ncnynl。 com / archives / 201703 / 1415.html
【4】https://blog.csdn.net/Nksjc/article/details/77359952
【5】https://blog.csdn.net/x_r_su/article/details/52927564
【 6】https://blog.csdn.net/baidu_34319491/article/details/106456571
【7】https://blog.csdn.net/Andrwin/article/details/100883593
前の投稿:自律航法カーの練習(3)
ランニングの問題を抱えている友人のために、電子メールを送るか、cenruping @ vip.qq.comについて話し合うためにメッセージを残してください