Skip to content

Add support for selecting which camera to use#55

Merged
rohbotics merged 3 commits into
kineticfrom
camera-select
Oct 22, 2018
Merged

Add support for selecting which camera to use#55
rohbotics merged 3 commits into
kineticfrom
camera-select

Conversation

@rohbotics

Copy link
Copy Markdown
Member

Related to #41

@realizator Can you see if this at least partially suits your needs?

@rohbotics rohbotics self-assigned this Oct 19, 2018
@rohbotics rohbotics requested a review from jim-v October 19, 2018 01:13
@ghost ghost added the in progress label Oct 19, 2018
@rohbotics rohbotics changed the title Add supporting to selecting which camera to use Add support for selecting which camera to use Oct 19, 2018
@realizator

realizator commented Oct 19, 2018

Copy link
Copy Markdown

@rohbotics, camera select option looks good. I will ask my friend with ROS experience if he will be able to use it.
upd> Friend says if he will be able to run two instances of a driver it should work. We a ready to test it if you'll be able to give us "night build" image with this feature implemented.

Also two notices for you. While working in stereo mode one camera is set as "master", another as "slave", or "secondary". "Master" makes auto settings, and secondary camera copies all settings form master (like brightness, AWB, contrast etc.) for images to be captured with the same settings. If we take independent images we can obtain different settings (especially in a case of light source on the left or right - settings will differ). But for the first stage tests it is not so critical.

Second notice for the future. If I work with stereo mode in Pi and make "-cs 1" - second camera became "master", and cameras are "swapped" in final image. That is left became right and vice versa. We should keep it in a mind for the future.

@rohbotics

Copy link
Copy Markdown
Member Author

Here is a deb file to test off of: https://drive.google.com/open?id=1VhjHMQT-46AEUKsidiEA0s1utdU7aw_c

To install:
Download the file onto the pi
On the Pi: sudo apt install ./ros-kinetic-raspicam-node_0.3.0~pr55_armhf.deb

To test on our image:
roslaunch raspicam_node camerav2_1280x960_10fps.launch
then in another terminal rqt_image_view rqt_image_view /raspicam_node/image/compressed

Ctrl+C the processes
run rosparam set /raspicam_node/camera_id 1
then run roslaunch raspicam_node camerav2_1280x960_10fps.launch again
then the other terminal run rqt_image_view again

You should see images from different cameras each time.

@jimvaughan jimvaughan left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks reasonable

@jim-v jim-v left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks reasonable to me too :)

@rohbotics

Copy link
Copy Markdown
Member Author

@realizator can you test this out and let me know if it lets you switch cameras?

@davecrawley

davecrawley commented Oct 21, 2018 via email

Copy link
Copy Markdown
Contributor

@realizator

Copy link
Copy Markdown

@rohbotics I will have access to my equipment tomorrow and can check camera selection. Will write you my results right after tests.

@realizator

Copy link
Copy Markdown

@rohbotics I tested your DEB.

  1. While sudo apt install ./ros-kinetic-raspicam-node_0.3.0~pr55_armhf.deb I got "Could not get lock /var/lib/dpkg/lock" message. I solved this with sudo rm /var/lib/dpkg/lock and installed DEB successfully.

  2. In your suggested line rqt_image_view rqt_image_view /raspicam_node/image/compressed there are two copies of rqt_image_view. While run I got "error: unrecognized arguments...". I think this is typo and you just twice "pasted" this, thus I leave only one "rqt_image_view" in your command row. After that it started successfully.

  3. I succesfully got image from the first camera.

  4. After ctrl+c "rqt_image_view" process in a second terminal, setting camera ID to 1 does nothing. So I did:

  • stopped "roslaunch raspicam_node..." too
  • run rosparam set /raspicam_node/camera_id 1
  • run roslaunch raspicam_node camerav2_1280x960_10fps.launch
  • run rqt_image_view /raspicam_node/image/compressed
    and successfully got image from the second camera.

Just a mention - I have v1 camera (wide-angle clone of original V1), but all your commands for V2 works.

@realizator

Copy link
Copy Markdown

p.s. sorry for posting 3 comments - GitHub have some problems now with login and posting comments ("You can't comment at this time."). I deleted duplicated comments.

@rohbotics

Copy link
Copy Markdown
Member Author

Awesome! Merging.

Yup, my bad on the rqt_image_view command, sorry about that

Just FYI
sudo rm /var/lib/dpkg/lock is probably a bad idea, because that means some auto-update process is (annoyingly) running in the background. Will disable this on the next image.

@rohbotics rohbotics merged commit 51c4c5b into kinetic Oct 22, 2018
@rohbotics rohbotics deleted the camera-select branch October 22, 2018 14:59
@ghost ghost removed the in review label Oct 22, 2018
@realizator

Copy link
Copy Markdown

upd> @rohbotics , also two notices about tests

  1. While run "rqt_image_view..." I got warning "libEGL warning: DRI2: failed to authenticate " every time, but it works.

  2. If I try to choose "/raspicam_node/image" or "raspicam_node/image/raw" I have grayscale gradient static image, no real picture. If I choose raspicam_node/image/compressed in QT dropdown list I got normal image. I also try to add _image_transport:=raw according to warning from [image_transport] but it does not fix it. Where am I do something wrong?

@rohbotics

Copy link
Copy Markdown
Member Author

libEGL warning: DRI2: failed to authenticate - Normal on the Raspberry Pi

Do you have raw publishing enabled?
rosparam set /raspicam_node/enable_raw true and then start raspicam.

@realizator

Copy link
Copy Markdown

@rohbotics I tested it with enable_raw, and looks like it works.
As for libEGL warning - ok, now I know.

@amburkoff

Copy link
Copy Markdown

@rohbotics How to simultaneously run two nodes so that one streams the left camera and the other right in different topics?

@karlahaiat

Copy link
Copy Markdown

@rohbotics How to simultaneously run two nodes so that one streams the left camera and the other right in different topics?

I am also interested in this, is it possible?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants