r**RRC: VINS DOCUMENTATION** first open up in grub menu and select 3rd option .150 then run docker images `docker run -i -t realsense:V2` # This script automatically mounts all detected video devices ``` DEVICES="" for dev in $(ls /dev/video* 2>/dev/null); do DEVICES+="--device=$dev " done ``` jdnee --- yuvraj@UV:~$ `xhost +local:root` ``` docker run -it --rm \ --device=/dev/video0 \ --device=/dev/video1 \ --device=/dev/video2 \ --device=/dev/bus/usb \ --privileged \ -v /dev:/dev \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e DISPLAY=$DISPLAY \ guptuv/launchfie:prblm ``` **MOunting command** ``` docker run -it --rm \ --device=/dev/video0 \ --device=/dev/video1 \ --device=/dev/video2 \ --device=/dev/bus/usb \ --privileged \ -v /dev:/dev \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v /home/yuvraj/Downloads:/root/Downloads \ -e DISPLAY=$DISPLAY \ guptuv/launchfie:prblm ``` then run ``` realsense-viewer ``` for running same container in diff terminal `docker exec -it [CONTAINER_ID] bash` flags these same container id in diferent terminal ``` docker exec -it \ -e DISPLAY=$DISPLAY \ [ID container] bash ``` ``` docker exec -it \ --privileged \ -v /dev:/dev \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e DISPLAY=$DISPLAY \ [Container_ID] ``` <!-- docker run -it --rm \ --device=/dev/video0 \ --device=/dev/video1 \ --device=/dev/video2 \ --device=/dev/bus/usb \ --privileged \ -v /dev:/dev \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e DISPLAY=$DISPLAY \ realsense:v3 --> Docker COMMIT' ``` docker commit c3f279d17e0a svend:version3 ``` for launching realsense in rviz `roslaunch realsense2_camera demo_pointcloud.launch ` Kalibr ``` 1. /root/catkin_ws/src:/opt/ros/noetic/share 2. /root/librealsense/unit-tests/resources/single_depth_color_640x480.bag 3. /root/catkin_ws/src/tartancalib/camera_calib.yaml 4. /root/kalibr_output 5. root@5d6e09ac9700:~/catkin_ws/src/tartancalib# rosbag info /root/librealsense/unit-tests/resources/single_depth_color_640x480.bag | grep "/image" /device_0/sensor_0/Depth_0/image/data 2 msgs : sensor_msgs/Image /device_0/sensor_0/Depth_0/image/metadata 36 msgs : diagnostic_msgs/KeyValue /device_0/sensor_1/Color_0/image/data 1 msg : sensor_msgs/Image /device_0/sensor_1/Color_0/image/metadata 22 msgs : diagnostic_msgs/KeyValue ``` command ``` source /root/catkin_ws/devel/setup.bash && \ rosrun kalibr tartan_calibrate \ --bag /data/bag.bag \ --target /config/target.yaml \ --topics /device_0/sensor_1/Color_0/image/data /device_0/sensor_0/Depth_0/image/data \ --models omni-radtan omni-radtan \ --min-init-corners-autocomplete 29 \ --min-tag-size-autocomplete 2 \ --correction-threshold 10.1 \ --dont-show-report \ --save_dir /output ``` ``` source /root/catkin_ws/devel/setup.bash && \ rosrun kalibr tartan_calibrate \ --bag /root/librealsense/unit-tests/resources/single_depth_color_640x480.bag \ --target /root/catkin_ws/src/tartancalib/camera_calib.yaml \ --topics /device_0/sensor_1/Color_0/image/data /device_0/sensor_0/Depth_0/image/data \ --models omni-radtan omni-radtan \ --min-init-corners-autocomplete 29 \ --min-tag-size-autocomplete 2 \ --correction-threshold 10.1 \ --dont-show-report \ --save_dir /output ``` camer on roslaunch ... rostopics list pick up image topic rosbag recor(imagr topic mname) run rviz in another file ``` rosrun kalibr tartan_calibrate \ --bag /root/2025-05-19-11-03-56.bag \ --target /root/catkin_ws/src/tartancalib/camera_calib.yaml \ --topics /device_0/sensor_1/Color_0/image/data /device_0/sensor_0/Depth_0/image/data \ --models omni-radtan omni-radtan \ --min-init-corners-autocomplete 29 \ --min-tag-size-autocomplete 2 \ --correction-threshold 10.1 \ --dont-show-report \ --save_dir /output ``` rosrun kalibr tartan_calibrate \ --bag /root/2025-05-19-11-47-01.bag --target /root/catkin_ws/src/tartancalib/camera_calib.yaml \ --topics /camera/color/image_raw\ --models omni-radtan omni-radtan \ --min-init-corners-autocomplete 29 \ --min-tag-size-autocomplete 2 \ --correction-threshold 10.1 \ --dont-show-report \ --save_dir /output ``` rosrun kalibr tartan_calibrate --bag /2025-05-19-13-39-06.bag --target /catkin_ws/src/tartancalib/camera_calib.yaml --topics /camera/color/image_raw --min-init-corners-autocomplete 29 --min-tag-size-autocomplete 2 --correction-threshold 10.1 --models pinhole-fov --dont-show-report --save_dir /kalibr_outputs --verbose ``` cd https://youtu.be/rBT5O5TEOV4 Great help from this video and channel Hey i ran this command ``` cd ~/catkin_ws/src git clone https://github.com/ethz-asl/schweizer_messer.git ``` ``` cd ~/catkin_ws catkin_make source devel/setup.bash ``` now i wanna remove it ``` rm -rf ~/catkin_ws/src/schweizer_messer cd ~/catkin_ws catkin_make ``` `source devel/setup.bash` also while capturing ensure the sm model is installed and while calibrating it's removed Results" Summary of What Went Right 676 images out of 837 were successfully used for corner extraction. The target was detected consistently, and a meaningful number of camera error terms were added. The optimization initialized, and multiple iterations of Levenberg-Marquardt ran with a decent reduction in cost (J dropped from ~59,000 to ~7,100 it worked for pinhole-radtan camera model search for pinhole radtan and otheres diff catkin_make then docker hub push done with software part of https://github.com/HKUST-Aerial-Robotics/VINS-Mono only diff is of vins mono on a radially distored camera and a tangentiallty distorted camera we r working on then paper inplementation for usb camera first install get it from gpt then make up a new launch file for it gpt it then ` rosrun kalibr tartan_calibrate --bag /2025-05-20-11-04-36.bag --target /catkin_ws/src/tartancalib/camera_calib.yaml --topics /image_view/output --min-init-corners-autocomplete 29 --min-tag-size-autocomplete 2 --correction-threshold 10.1 --models pinhole-radtan --dont-show-report --save_dir /usb_camera_outputs --verbose --plot` `docker exec -it -e DISPLAY=$DISPLAY 5f2e238b6a53 bash` REALSENSE IMU ANSD CAMERA FROM `roslaunch realsense2_camera rs_camera.launch enable_color:=true enable_gyro:=true enable_accel:=true unite_imu_method:=linear_interpolation enable_sync:=true # Critical for time-synced IMU+camera data` ** INFRA cam on ** `roslaunch realsense2_camera rs_camera.launch enable_infra1:=true enable_infra2:=true enable_gyro:=true enable_accel:=true unite_imu_method:=linear_interpolation` sudo apt-get install ros-noetic-cv-bridge ros-YOUR_DISTRO-tf ros-YOUR_DISTRO-message-filters ros-YOUR_DISTRO-image-transport remember by now we have make that as comment statement in roslaucnh of coment sections of realsense viewer so it wont'open ✅ Option 1: Copy a File to a Running Docker Container If the container is already running and you want to copy a file into it: bash Copy Edit `docker cp /path/to/your/file.txt container_name_or_id:/path/in/container/file.txt` CERES INSTALLATION first do prequisite of vins mono # ✅ Installing Ceres Solver 1.14.0 on Ubuntu (Beginner-Friendly Guide) This guide helps you install Ceres Solver 1.14.0 on Ubuntu and verify the installation step by step, even if you're a complete beginner. --- ## 🧰 Prerequisites ``` Open a terminal and install the required dependencies: ```bash sudo apt update sudo apt install -y cmake libgoogle-glog-dev libgflags-dev libatlas-base-dev libsuitesparse-dev cd ~ git clone https://github.com/ceres-solver/ceres-solver.git cd ceres-solver git checkout 1.14.0 mkdir build && cd build cmake .. make -j4 sudo make install ``` ****REMEMBER to b in home not in root gpt gives of root Then do ``` cd catkin_ws catkin_make_isolated # isolated as catkin_make failed and listed this and an option ``` `source catkin_ws/devel_isolated/setup.bash` check by `ls catkin_ws/devel_isolated/vins_estimator/lib/vins_estimator/` ``` ls -l /catkin_ws/devel/lib/feature_tracker/ ls -l /catkin_ws/devel/lib/vins_estimator/ ls -l /catkin_ws/devel/lib/pose_graph/ ``` **Step 1: Commit the Running Container to a New Image** Find your container ID: bash `docker ps` (Note the CONTAINER ID of your running container.) Commit changes to a new Docker image: bash docker commit [CONTAINER_ID] your-dockerhub-username/new-image-name:tag Example: bash `docker commit abc123 yourusername/my-custom-image:v1` Step 2: Tag the Image (Optional, but Recommended) If you didn’t tag it during commit, tag it now: bash docker tag [IMAGE_ID] your-dockerhub-username/new-image-name:tag Example: bash `docker tag def456 yourusername/my-custom-image:latest` Step 3: Log in to Docker Hub bash `docker login` (Enter your Docker Hub username and password.) **Step 4: Push the Image to Docker Hub** bash docker push your-dockerhub-username/new-image-name:tag Example: bash `docker push yourusername/my-custom-image:v1` for 2 topics ``` rosrun kalibr tartan_calibrate \ --bag /2025-05-29-10-40-46.bag \ --target /catkin_ws/src/tartancalib/camera_calib.yaml \ --topics /camera/infra1/image_rect_raw /camera/infra2/image_rect_raw \ --models pinhole-radtan pinhole-radtan \ --min-init-corners-autocomplete 15 \ --min-tag-size-autocomplete 2 \ --correction-threshold 1.0 \ --dont-show-report \ --save_dir /infra_1_2_calib ``` vins_4.py ``` root@5d32a80731d7:/# cat vins_4.py #!/usr/bin/env python3 import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge, CvBridgeError import cv2 import tkinter as tk from tkinter import messagebox class RosTopicViewer: def __init__(self, master): self.master = master self.master.title("ROS Topics Viewer") self.bridge = CvBridge() self.subscriber = None # Listbox to display topics self.listbox = tk.Listbox(master, width=50, height=20) self.listbox.pack(padx=10, pady=10) # Button to subscribe to selected topic self.btn_subscribe = tk.Button(master, text="Subscribe to Selected Topic", command=self.subscribe_topic) self.btn_subscribe.pack(pady=5) # Refresh topics button self.btn_refresh = tk.Button(master, text="Refresh Topic List", command=self.load_topics) self.btn_refresh.pack(pady=5) # Load the initial topic list self.load_topics() def load_topics(self): # Clear the listbox self.listbox.delete(0, tk.END) # Get all published topics topics = rospy.get_published_topics() # Filter only topics publishing sensor_msgs/Image messages self.image_topics = [] for topic, ttype in topics: if ttype == "sensor_msgs/Image": self.listbox.insert(tk.END, topic) self.image_topics.append(topic) if not self.image_topics: self.listbox.insert(tk.END, "No Image topics available.") def subscribe_topic(self): # Get selected topic selection = self.listbox.curselection() if not selection: messagebox.showwarning("No selection", "Please select a topic first.") return topic = self.listbox.get(selection[0]) if topic == "No Image topics available.": messagebox.showwarning("Invalid selection", "Please select a valid image topic.") return # Unsubscribe if already subscribed if self.subscriber: self.subscriber.unregister() # Subscribe to the new topic self.subscriber = rospy.Subscriber(topic, Image, self.image_callback) rospy.loginfo(f"Subscribed to {topic}") def image_callback(self, msg): try: cv_image = self.bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8') cv2.imshow("Image from topic", cv_image) cv2.waitKey(1) except CvBridgeError as e: rospy.logerr(e) if __name__ == '__main__': rospy.init_node('ros_topic_image_viewer', anonymous=True) root = tk.Tk() app = RosTopicViewer(root) try: tk.mainloop() except KeyboardInterrupt: pass finally: cv2.destroyAllWindows() ``` vins_3.py ``` #!/usr/bin/env python3 import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge, CvBridgeError import cv2 def image_callback(msg): try: # Convert ROS Image message to OpenCV image cv_image = bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8') # Show the image in a window cv2.imshow("Camera Feed", cv_image) cv2.waitKey(1) # 1 ms delay to keep window responsive except CvBridgeError as e: rospy.logerr(e) if __name__ == '__main__': rospy.init_node('cam_viewer', anonymous=True) bridge = CvBridge() # Subscribe to the USB camera image topic rospy.Subscriber("/feature_tracker/feature_img", Image, image_callback) rospy.loginfo("Starting USB Camera Viewer...") try: rospy.spin() except KeyboardInterrupt: pass finally: cv2.destroyAllWindows() ``` FOR cleaning up ystem use `sudo rm -rf /var/lib/docker` cal pull on later but tremember to store in docker hub orfirst