ROS:開機自啟動_機器人

來源:互聯網
上載者:User
Ubuntu14.04

網上很多資料說在/etc/rc.local中添加指令碼,實驗之後完全沒用。可能是系統版本不對。
解決:
Ubuntu14.04 開機項命令: gnome-session-properties

點擊”add”

name : 名字
command : 命令,eg:gnome-terminal -x your_command.sh
注意:sh檔案的許可權,必須是可啟動並執行, 路徑為絕對路徑。

 sudo chmod +x your_command.sh

comment :注釋


退出,重啟。

指令檔 start.sh

#! /bin/bash source /opt/ros/indigo/setup.shsource /home/server/catkin_ws/devel/setup.bashroslaunch /home/server/catkin_ws/src/nodelet_tutorial_math/launch/plus.launch

開機後結果,已經自動運行了。
firefly

最終的產品我們不可能用一台電腦作為處理器,所以我們要有開發板,我們使用的是firefly rk3288.系統是Ubuntu14.04.因為系統是同事搞得,具體細節不清楚。在firefly中,沒有gnome-session-properties這條命令,也就是說之前的方法不能用。這個時候robot_upstart 上場了。
http://docs.ros.org/jade/api/robot_upstart/html/index.html#
安裝:sudo apt-get install ros-indigo-robot-upstart

install 命令:要啟動的launch檔案,預設的名稱為”myrobot”,也可以使用–job 指定工作名稱,預設是工程名(底線之前的部分)。

start 命令:

$ sudo service nodelet start

關機重啟之後,這時,我們的終端不會自動啟動,但是ros 節點已經啟動了,開啟終端,驗證一下執行

$rosnode list$rostopic list

可以看到,ros節點已經在運行了。

stop命令:

sudo service nodelet stop

uninstall命令:

rosrun robot_upstart uninstall nodelet


這樣自啟動就會取消了。 遇到的大坑

我們的板子需要接很多裝置,比如底座,網路攝影機,arduino等等。板子上的usb轉串口 介面明顯不夠用。另外開機時串口的識別,裝置的識別等很不穩定。所以讓這些裝置在板子開機時被穩定的識別到是最重要的。目前沒有找到好的解決辦法,以後解決了再更新。

2016 -12-30更新

之前的關於裝置介面和串口識別不到的問題解決了,說一下解決思路。可以建立一個node,使用launch啟動,將這個launch設為自啟動。這樣,上電開機時,這個node就會運行。在這個node中,延時一段時間,調用c++的system函數執行去linux命令,啟動包含網路攝影機等其他裝置的launch。

system("roslaunch pkg xxx.launch")

總之,等系統識別完裝置介面之後,再去啟動我們的launch,就能保證不會出現找不到串口或裝置的問題了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.