ปัญหา rospack หาไฟล์ librospack.so ไม่เจอ

ขอมาจดไว้สักหน่อย เผื่อมีคนที่เริ่มต้นลอง ROS แล้วติดปัญหาเดียวกัน

พอดีผมลองสั่งคำสั่งนี้เล่น

$ rospack

แต่ดันเจอ Error แบบนี้

rospack: error while loading shared libraries: librospack.so: cannot
open shared object file: No such file or directory

เป็นแค่คำสั่งเดียวด้วยนะ 🙂 เอาล่ะ.. ถ้าเราลง ROS ตาม Ubuntu install of Fuerte (เวอร์ชั่นอะไรก็ได้นะ ไม่จำเป็นต้องเป็น Fuerte) แล้วเกิดปัญหาเดียวกันนี้ ให้ลองดูที่ไฟล์ ~/.bashrc ก่อนครับ ของผมจะมีหน้าตาแบบนี้

source /opt/ros/fuerte/setup.bash
export ROS_PACKAGE_PATH=~/Projects/ros_workspace:/opt/ros/fuerte/share:/opt/ros/fuerte/stacks
export ROS_WORKSPACE=~/Projects/ros_workspace
export LD_LIBRARY_PATH=/usr/local/lib

ดูแล้วก็ไม่น่ามีปัญหาอะไร แต่จริงๆ แล้วมีนะ เหตุเกิดเพราะว่าผมไปลง OpenCV ตามหลัง ROS ซึ่ง OpenCV สมัยนี้ก็ฉลาดใส่บรรทัดข้างล่างนี้มาให้เลยตรงบรรทัดสุดท้าย

export LD_LIBRARY_PATH=/usr/local/lib

ซึ่งมีผลทำให้บรรทัดแรก

source /opt/ros/fuerte/setup.bash

ไร้ค่าไปทันที เนื่องจากคำสั่งนี้จะเป็นการเซต LD_LIBRARY_PATH ของ ROS แต่ดันโดน overwrite โดย OpenCV ไปเรียบร้อย

วิธีแก้ก็ง่ายมากครับแค่ย้ายๆ สลับบรรทัดกันดังนี้ เอา LD_LIBRARY_PATH ขึ้นไปไว้บรรทัดแรกแทนจะได้ไม่ต้องมีปัญหากับคำสั่ง source อีก

export LD_LIBRARY_PATH=/usr/local/lib
source /opt/ros/fuerte/setup.bash
export ROS_PACKAGE_PATH=~/Projects/ros_workspace:/opt/ros/fuerte/share:/opt/ros/fuerte/stacks
export ROS_WORKSPACE=~/Projects/ros_workspace

เป็นอันเสร็จสิ้น สามารถใช้ rospack ได้ตามปกติ