Tutorial de como usar e resolvendo problema de como usar o sick
Instale o driver sick no apt ou synaptic
= Compile =
- $ rosdep install sicktoolbox_wrapper rviz
- $ rosmake sicktoolbox_wrapper rviz
Configure o sick
* ls -l /dev/ttyUSB0 * sudo chmod a+rw /dev/ttyUSB0
Para sicklms funcionar adequadamente, um núcleo do ros deve ser executado. Em um novo terminal:
$ roscore
Problema com o driver do sick no ROS
Como o driver do Sick é basicamente o mesmo usado no player ele sofre do mesmo problema do driver para player que é se ao tentarmos inicializar o laser e logo em seguida obter uma leitura o driver nao consegue startar corretamente e se fecha. Para isso é necessário que no codigo responsável pela inicialização do laser que o mesmo fique sem tentar obter leituras por algum tempo, por padrão usou-se 30 segundos.
Para resolver o seguinte problema temos que ir para /opt/ros/diamondback/stacks/laser_drivers/sicktoolbox
Então digite make para que os executáveis sejam construídos, uma vez que por padrão apenas as bibliotecas são disponibilizadas, sendo assim impossível modificar os arquivos fontes.
Então em opt/ros/diamondback/stacks/laser_drivers/sicktoolbox/build/sicktoolbox-1.0/c++/drivers/lms/sicklms-1.0 no arquivo SickLMS.cc na linha 125 acrescente um sleep(30);
Compile novamente e volte ao diretorio do driver_laser e compile tambem o sickwrapper(rosmake sicktoolbox_wrapper).
COnfigurando parametros e rodando o sick
Rode:
As seguintes mensagens devem aparecer:
Attempting to open device @ /dev/ttyUSB0
SickLMS::_setTermSpeed: ioctl() failed while trying to get serial port info!
NOTE: This is normal when connected via USB!
SickLMS::_setTerminalBaud: ioctl() failed while trying to set serial port info!
NOTE: This is normal when connected via USB! Device opened! Attempting to start buffer monitor... Buffer monitor started! Attempting to set requested baud rate...
SickLMS::_setTermSpeed: ioctl() failed while trying to get serial port info!
NOTE: This is normal when connected via USB!
SickLMS::_setTerminalBaud: ioctl() failed while trying to set serial port info!
NOTE: This is normal when connected via USB! Operating @ 38400bps Attempting to sync driver... Driver synchronized! Init. complete: Sick LMS is online and ready! Sick Type: Sick LMS 291-S05 Scan Angle: 180 (deg) Scan Resolution: 0.5 (deg) Measuring Mode: 8m/80m; fields A,B,Dazzle Measuring Units: Centimeters (cm)
Requesting measured value data stream... Data stream started! </note> </note>
Se as seguintes mensagens aparecerem basta apenas abrir outro terminal e executar:
rosrun rviz rviz -d `rospack find sicktoolbox_wrapper`/sick_test.vcg</note>