結論
sudo apt install libssh2-1
で解決した
環境
- Ubuntu16.04 + ROS Kinetic
- MATLAB 2016b
- Simulink, Control System Toolbox, Robotics System Toolbox, Simulink Coder
背景
simulinkのツールボックスの中には,Simulink Coderがある.これはブロックモデルから,自動で対象のハードウェア向けコードを自動生成し,実機で実行可能にしてくれるという制御屋さんには心強いツールボックス.
Simulink CoderはRobotics System Toolboxを持ってれば,ROSでも使えるようにしてくれるので,このサイトを参考にsimulinkモデルからROS用のコードを自動生成してみようとしたが,最初のあたりのステップでつまづいてしまった.(Task 2 - Configure the Connection to the ROS Deviceのあたり)
問題の原因
エラーが起こっていたのは,ホストPCに接続するためのssh通信テストの部分.
対象に接続できません的なメッセージだったので,アドレスやログインユーザ名が間違っているのかな?と思ったが,ターミナルでssh通信したらちゃんと通信できる.
MATLABのコマンドウィンドウからrosdevice(deviceAddress,username,password)
でつなげるか確認してみると,
$MATLABROOT/toolbox/robotics/robotsimulink/robotslros/+robotics/+codertarget/+internal/private/ssh2client_mex.mexa64
に問題があるようで,libssh2.so1が見つからない的なメッセージが表示されたので,
($MATLABROOT
はMATLABがインストールされたディレクトリ)
ターミナルから,
sudo apt install libssh2-1
でインストールしたら,MATLABからもsshで通信可能となり,接続テストもクリアした.