ขอมาจดไว้สักหน่อย เผื่อมีคนที่เริ่มต้นลอง 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
ได้ตามปกติ