<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><description>Todd co-founded Cloudspace in 1996, MyBlogLog (sold to Yahoo! in 2007), OneTrueFan (sold to BigDoor in 2011), and a number of other startups over the years.  He served as mentor at TechStars Boulder &amp; Seedcamp London and advises a number of tech startups from Silicon Valley to Bucharest.  He has recently moved from San Francisco to Orlando to re-take the CEO role at Cloudspace with a new mission to assist established companies in launching their own startups.</description><title>Todd Sampson</title><generator>Tumblr (3.0; @toddsampson)</generator><link>https://toddsampson.com/</link><item><title>Disappearing Ethereum Transactions with the Aragon ICO</title><description>&lt;p&gt;While trying to get in on the @aragonproject ICO today, I noticed the first transaction I submitted was taking longer than usual so I did a quick screen capture. A few minutes later the transaction stated “Unable to locate transaction entry” so I grabbed a screenshot of that as well. (see below) Since I only put enough Ether in my MetaMask wallet to cover the transaction plus a few extra Ether as a buffer for fees, etc. I figured I would just resubmit the transaction. I had the same thing happen two more times. On the fourth try the transaction actually went through. From what I have seen on Twitter so far, it seems like some other people weren’t as lucky.&lt;/p&gt;&lt;p&gt;Can anyone explain why this happened?&lt;/p&gt;&lt;p&gt;Is this just a limit of the Ethereum network ahead of the planned scaling upgrades?&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Would love to get more info. In any case, huge congrats to the Aragon team on the second biggest ICO in history!&lt;/p&gt;&lt;figure class="tmblr-full" data-orig-height="900" data-orig-width="1440"&gt;&lt;img src="https://64.media.tumblr.com/f00e1d3390c0a8df279e4d3e9ca0ec88/tumblr_inline_oq44ghFbMo1qzt54t_540.png" data-orig-height="900" data-orig-width="1440"/&gt;&lt;/figure&gt;&lt;figure class="tmblr-full" data-orig-height="900" data-orig-width="1440"&gt;&lt;img src="https://64.media.tumblr.com/c206e8b4380485d1d07e5d1b1df0c026/tumblr_inline_oq44hzHaGh1qzt54t_540.png" data-orig-height="900" data-orig-width="1440"/&gt;&lt;/figure&gt;&lt;figure class="tmblr-full" data-orig-height="900" data-orig-width="1440"&gt;&lt;img src="https://64.media.tumblr.com/f1cefceae7620515dd8bfa4385ba199c/tumblr_inline_oq44i6d9aY1qzt54t_540.png" data-orig-height="900" data-orig-width="1440"/&gt;&lt;/figure&gt;</description><link>https://toddsampson.com/post/160777145512</link><guid>https://toddsampson.com/post/160777145512</guid><pubDate>Wed, 17 May 2017 12:56:45 -0700</pubDate><category>ethereum</category><category>ether</category><category>aragon</category><category>ico</category><category>bug</category></item><item><title>(via EHANG 184 Launch Video from CES2016 - YouTube) </title><description>&lt;iframe width="400" height="225"  id="youtube_iframe" src="https://www.youtube.com/embed/_vGd1Oy7Cw0?feature=oembed&amp;enablejsapi=1&amp;origin=https://safe.txmblr.com&amp;wmode=opaque" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="EHANG 184 Launch Video from CES2016"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;(via &lt;a href="https://www.youtube.com/watch?v=_vGd1Oy7Cw0" target="_blank"&gt;EHANG 184 Launch Video from CES2016 - YouTube&lt;/a&gt;) &lt;/p&gt;</description><link>https://toddsampson.com/post/136993636527</link><guid>https://toddsampson.com/post/136993636527</guid><pubDate>Sat, 09 Jan 2016 20:45:48 -0800</pubDate></item><item><title>Pretty amazing watching 100 drones synchronized in flight.</title><description>&lt;iframe width="400" height="225"  id="youtube_iframe" src="https://www.youtube.com/embed/eZ-js5zn-I0?feature=oembed&amp;enablejsapi=1&amp;origin=https://safe.txmblr.com&amp;wmode=opaque" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="The Making Of Drone 100 | Intel"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Pretty amazing watching 100 drones synchronized in flight.&lt;/p&gt;</description><link>https://toddsampson.com/post/136992871607</link><guid>https://toddsampson.com/post/136992871607</guid><pubDate>Sat, 09 Jan 2016 20:31:59 -0800</pubDate><category>intel</category><category>drone</category><category>drone 100</category></item><item><title>Disney’s wall climbing robot car is pretty amazing.</title><description>&lt;iframe width="400" height="225" src="https://www.youtube.com/embed/e9P9_QM8cN8" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Disney’s wall climbing robot car is pretty amazing.&lt;/p&gt;</description><link>https://toddsampson.com/post/136209758887</link><guid>https://toddsampson.com/post/136209758887</guid><pubDate>Tue, 29 Dec 2015 13:56:18 -0800</pubDate><category>robot</category><category>car</category><category>disney</category></item><item><title>Took a break from building robots to do a bit of surfing...</title><description>&lt;iframe width="400" height="225" src="https://www.youtube.com/embed/KxhZdVfLLdU" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Took a break from building robots to do a bit of surfing yesterday.  I think the video turned out pretty well considering I’m new to Final Cut Pro X.&lt;/p&gt;</description><link>https://toddsampson.com/post/133215112337</link><guid>https://toddsampson.com/post/133215112337</guid><pubDate>Sat, 14 Nov 2015 12:03:51 -0800</pubDate><category>Surfing</category><category>Cocoa Beach</category><category>Sharks</category></item><item><title>Docker Networking no longer experimental</title><description>&lt;p&gt;If you are running through any of my previous tutorials on ROS and Docker using the experimental networking feature, you should know that networking is no longer experimental.  It has been released in the 1.9.0 production tag.&lt;/p&gt;&lt;p&gt;Sadly, it appears that the current 1.10.0 experimental branch of Docker is completely hosed based on notes from a few people that reached out to me.  As such, I recommend uninstalling experimental Docker as described here: &lt;a href="http://docs.docker.com/engine/installation/ubuntulinux/#uninstallation" target="_blank"&gt;http://docs.docker.com/engine/installation/ubuntulinux/#uninstallation&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Then install Docker 1.9.0 using:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt; wget -qO- &lt;a href="https://get.docker.com/" target="_blank"&gt;https://get.docker.com/&lt;/a&gt; | sh&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Be sure to re-add your user to the docker group as the install recommends and logout/login to active the new group settings.&lt;/p&gt;</description><link>https://toddsampson.com/post/132906116887</link><guid>https://toddsampson.com/post/132906116887</guid><pubDate>Mon, 09 Nov 2015 17:25:22 -0800</pubDate><category>Docker</category><category>Networking</category><category>ROS</category></item><item><title>ROS Visualization Packages in Docker</title><description>&lt;p&gt;It &lt;a href="http://toddsampson.com/post/131447984382/ros-usb-sensor-input-in-docker" target="_blank"&gt;my last post&lt;/a&gt; we setup a usb camera to work as a ROS sensor inside a Docker container.  Now let’s get the image stream from that webcam displaying in ROS’s image_view via the image_pipeline package.&lt;/p&gt;&lt;figure class="tmblr-full" data-orig-height="710" data-orig-width="1388"&gt;&lt;img src="https://64.media.tumblr.com/31708677d1dcfeddbb0925c26b6e0bc1/tumblr_inline_nwucqjDyXW1qzt54t_540.png" data-orig-height="710" data-orig-width="1388"/&gt;&lt;/figure&gt;&lt;p&gt;First run this on the host computer to authorize containers to access the X server from the docker container:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;xhost +&lt;br/&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Next we create our Dockerfile, which will be a bit more complex than the usbcam example since we need to setup user and group permissions that match the host computer.  Be sure to update the uid and gid to match your user on the host machine.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;FROM ros:indigo-ros-core&lt;/p&gt;&lt;p&gt;RUN apt-get -y update&lt;br/&gt;&lt;/p&gt;&lt;p&gt;RUN apt-get -y install ros-indigo-image-pipeline&lt;/p&gt;&lt;p&gt;ENV uid 1000 # IMPORTANT: Update to the `id -u` value on your computer&lt;br/&gt;ENV gid 1000 # IMPORTANT: Update to the `id -g` value on your computer&lt;/p&gt;&lt;p&gt;RUN export uid=${uid} gid=${gid} &amp;amp;&amp;amp; \&lt;br/&gt;   mkdir -p /home/ros &amp;amp;&amp;amp; \&lt;br/&gt;   echo &amp;ldquo;ros:x:${uid}:${gid}:ros,,,:/home/ros:/bin/bash&amp;rdquo; &amp;gt;&amp;gt; /etc/passwd &amp;amp;&amp;amp; \&lt;br/&gt;   echo &amp;ldquo;ros:x:${uid}:&amp;rdquo; &amp;gt;&amp;gt; /etc/group &amp;amp;&amp;amp; \&lt;br/&gt;   echo &amp;ldquo;ros ALL=(ALL) NOPASSWD: ALL&amp;rdquo; &amp;gt; /etc/sudoers.d/ros &amp;amp;&amp;amp; \&lt;br/&gt;   chmod 0440 /etc/sudoers.d/ros &amp;amp;&amp;amp; \&lt;br/&gt;   chown ${uid}:${gid} -R /home/ros&lt;/p&gt;&lt;p&gt;USER ros&lt;br/&gt;ENV HOME /home/ros&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Now we can add a launch config to the docker-compose.yml we created in the last post.  Note the shared X11-unix volume and environment DISPLAY.  These are needed to allow launching X window visualizations.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;image_view:&lt;br/&gt;  build: .&lt;br/&gt;  # image: toddsampson/ros-indigo-image_pipeline&lt;br/&gt;  container_name: image_view&lt;br/&gt;  hostname: image_view&lt;br/&gt;  name: image_view&lt;br/&gt;  volumes_from:&lt;br/&gt;        - &amp;ldquo;rosmaster&amp;rdquo;&lt;br/&gt;  # net: rosdocker&lt;br/&gt;  volumes:&lt;br/&gt;        - &amp;ldquo;/tmp/.X11-unix:/tmp/.X11-unix&amp;rdquo;&lt;br/&gt;  environment:&lt;br/&gt;        - &amp;ldquo;DISPLAY=$DISPLAY&amp;rdquo;&lt;br/&gt;        - &amp;ldquo;ROS_HOSTNAME=image_view&amp;rdquo;&lt;br/&gt;        - &amp;ldquo;ROS_MASTER_URI=http://rosmaster:11311&amp;rdquo;&lt;br/&gt;  command: rosrun image_view image_view image:=/image_raw&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The rosrun command calls the image_view ROS package to show the image stream from the usbcam setup in the last post.  The basic image_raw source and default baud rate settings worked for me.  You may need to update them for your system.&lt;/p&gt;&lt;p&gt;Once the above is added to your docker-compose file, and the rosmaster &amp;amp; usbcam containers are running, you can launch image_view with the following command:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;docker-compose —x-networking up image_view&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;To make things easier I have posted a &lt;a href="https://github.com/toddsampson/ros-docker/tree/indigo" target="_blank"&gt;full example on Github&lt;/a&gt;.  I also have shared &lt;a href="https://hub.docker.com/r/toddsampson/" target="_blank"&gt;pre-built Docker Images on Docker Hub&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;As always, feel free to hit me at &lt;a href="http://tmblr.co/msUNgQZyN-dJsAR_b1HwerA" target="_blank"&gt;@toddsampson&lt;/a&gt; on Twitter with any questions or thoughts you have on ROS, Docker, or anything else.&lt;/p&gt;</description><link>https://toddsampson.com/post/131965350342</link><guid>https://toddsampson.com/post/131965350342</guid><pubDate>Mon, 26 Oct 2015 12:05:45 -0700</pubDate><category>ROS</category><category>Docker</category><category>Image_view</category><category>X11</category></item><item><title>ROS USB Sensor Input in Docker</title><description>&lt;p&gt;In my&lt;a href="http://toddsampson.com/post/131227320927/docker-experimental-networking-and-ros" target="_blank"&gt; last post&lt;/a&gt; I showed how to get ROS working under Docker using a simple talker &amp;amp; listener example.  Using this method will work for most ROS packages that provide publisher &amp;amp; subscriber functionality.  In order to use ROS packages that require access to external sensors in Docker requires a bit of additional configuration.&lt;/p&gt;&lt;p&gt;As an example, let’s publish in an image stream from a webcam to ROS.&lt;/p&gt;&lt;p&gt;Since many of Apple’s newer iSight cameras aren’t compatible with the main camera packages in ROS, I temporarily disconnected the &lt;a href="http://www.trossenrobotics.com/robot_webcam" target="_blank"&gt;RobotGeek Webcam&lt;/a&gt; from my &lt;a href="http://www.21stcenturyrobot.com/" target="_blank"&gt;21st Century Robot&lt;/a&gt; &lt;a href="http://www.trossenrobotics.com/HR-OS1" target="_blank"&gt;HR-OS1&lt;/a&gt; and plugged it into a USB slot on my computer.&lt;br/&gt;&lt;/p&gt;&lt;figure class="tmblr-full" data-orig-height="2448" data-orig-width="3264"&gt;&lt;img src="https://64.media.tumblr.com/aeada89b2767a8320652832851aa6812/tumblr_inline_nwfsrkRHWV1qzt54t_540.jpg" data-orig-height="2448" data-orig-width="3264"/&gt;&lt;/figure&gt;&lt;p&gt;With the USB camera connected, we can get it working in ROS under Docker. First we create a wrapper around the libuvc-ros meta-package in a Dockerfile:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;FROM ros:indigo-ros-core&lt;br/&gt;&lt;/p&gt;&lt;p&gt;RUN apt-get -y update&lt;br/&gt;RUN apt-get -y install ros-indigo-libuvc-ros&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Next we make a Docker Compose entry for the webcam:&lt;br/&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;usbcam:&lt;br/&gt;  image: toddsampson/ros-indigo-usbcam&lt;br/&gt; name: usbcam&lt;br/&gt;  container_name: usbcam&lt;br/&gt;  net: rosdocker&lt;br/&gt;  devices:&lt;br/&gt;      - &amp;ldquo;/dev/bus/usb:/dev/bus/usb&amp;rdquo;&lt;br/&gt;  hostname: usbcam&lt;br/&gt;  environment:&lt;br/&gt;      - &amp;ldquo;ROS_HOSTNAME=usbcam&amp;rdquo;&lt;br/&gt;      - &amp;ldquo;ROS_MASTER_URI=http://rosmaster:11311&amp;rdquo;&lt;br/&gt;  command: rosrun libuvc_camera camera_node _height:=480 _width:=640 _vendor:=2084 _video_mode:=uncompressed _frame_rate:=30&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;A few things to note about the above:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The lines with `devices:  - “/dev/bus/usb:/dev/bus/usb”` allow the container to access the USB devices connected to the computer running Docker.  More importantly, it does so in a way that doesn’t require you to run the container in privileged mode as required in Docker’s earlier days.&lt;/li&gt;&lt;li&gt;You may need to tweak the settings for your specific camera.  &lt;/li&gt;&lt;li&gt;If you want to use the Dockerfile listed above instead of the one I have on Docker Hub, replace `image: toddsampson/ros-indigo-usbcam` with `build .`&lt;/li&gt;&lt;li&gt;Finally, for a full example, including a rosmaster container running roscore and the launch command, check out the source code on Github: &lt;a href="https://github.com/toddsampson/ros-docker-usbcam/tree/indigo" target="_blank"&gt;https://github.com/toddsampson/ros-docker-usbcam/tree/indigo&lt;/a&gt;.&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;figure class="tmblr-full" data-orig-height="400" data-orig-width="382"&gt;&lt;img src="https://64.media.tumblr.com/fd9492eb2b177278d00e2a885aec9290/tumblr_inline_nwfsunwx401qzt54t_540.png" data-orig-height="400" data-orig-width="382"/&gt;&lt;/figure&gt;&lt;p&gt;This will get you up-and-running with external sensors in Docker.  In the next post I will show how to visualize the data we receive in a separate Docker container using one of the ROS visualization packages.  If you have questions or want to learn more, follow me on Twitter: @toddsampson&lt;/p&gt;</description><link>https://toddsampson.com/post/131447984382</link><guid>https://toddsampson.com/post/131447984382</guid><pubDate>Sun, 18 Oct 2015 15:24:18 -0700</pubDate><category>ros</category><category>docker</category><category>usb</category><category>sensors</category></item><item><title>Docker Experimental Networking and ROS</title><description>&lt;p&gt;When I first saw Docker, it was love at first sight.  Adding network-effects, both human and tech, to Linux containers made so much sense.  Packaged, distributed processing units can finally join distributed networking and storage on the internet.&lt;/p&gt;&lt;p&gt;We (&lt;a href="http://cloudspace.com" target="_blank"&gt;Cloudspace&lt;/a&gt;) immediately jumped in to use &lt;a href="https://www.docker.com/" target="_blank"&gt;Docker&lt;/a&gt; for a number of internal projects as well as projects for a few brave clients. (Thanks guys!)  These projects ranged from traditional DevOps and a database backup system to a distributed job runner that allowed us to run jobs with the extra compute cycles on our office laptops &amp;ndash; all with great results.&lt;/p&gt;&lt;p&gt;Then we tried using Docker with the &lt;a href="http://www.ros.org/" target="_blank"&gt;Robot Operating System (ROS)&lt;/a&gt;&amp;hellip;&lt;/p&gt;&lt;p&gt;Due to conflicts between the networking models of Docker, which required you to open ports for communication between containers on launch, and ROS, which uses a “graph”  of dynamic communication systems under-the-hood, the two systems didn’t play nicely together.  This was especially true if you try to keep with Docker’s &amp;ldquo;one process per container” best practice.  So we shelved the idea&lt;/p&gt;&lt;p&gt;Fast-forward two and a half years. (I can’t believe it has been that long!) It probably goes without saying, but both Docker and ROS have come a long way.  ROS has even put out their own official containers for &lt;a href="https://hub.docker.com/_/ros/" target="_blank"&gt;base system and perception modules on Docker Hub&lt;/a&gt;.  As the documentation on this page calls out, to properly use ROS with Docker containers you need to use Docker’s experimental networking.&lt;/p&gt;&lt;p&gt;Being experimental, Docker’s new networking is changing fast.  So much so that the instructions on the ROS Docker Hub page no longer work.  Several features and flags have been replaced.  Further, the docs don’t touch on how to use ROS with &lt;a href="https://docs.docker.com/compose/" target="_blank"&gt;Docker Compose&lt;/a&gt; to design a large scale system, such as a ROS-based robot.  As Docker’s experimental networking nears launch &amp;ndash; &lt;a href="https://github.com/docker/compose/releases/tag/1.5.0rc1" target="_blank"&gt;Docker Compose just put out a release candidate&lt;/a&gt; with Docker’s new networking &amp;ndash; I figured it was time to try ROS with Docker again.&lt;/p&gt;&lt;p&gt;Long-story short, outside time spent digging into source code trying to discover how undocumented parts of Docker networking works, it is a complete success.  The remainder of this post is a quick summary of how to setup a Linux machine to use the new network with ROS.&lt;/p&gt;&lt;figure data-orig-width="1096" data-orig-height="928" class="tmblr-full"&gt;&lt;img src="https://64.media.tumblr.com/620fa19c00efee97caf825e4079e1bfc/tumblr_inline_nw9t6lWAo91qzt54t_540.png" alt="image" data-orig-width="1096" data-orig-height="928"/&gt;&lt;/figure&gt;&lt;p&gt;&lt;b&gt;Getting Docker Experimental Networking&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Run the following to install Docker with the experimental features (be sure to enter your password when prompted):&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strike&gt;

 curl -sSL &lt;a href="https://experimental.docker.com/" target="_blank"&gt;https://experimental.docker.com/&lt;/a&gt; | sh&lt;/strike&gt;&lt;/p&gt;&lt;p&gt;November 9, 2015 Update: Docker Networking is no longer experimental.  As such, you should install the latest Docker production release.  See &lt;a href="http://toddsampson.com/post/132906116887/docker-networking-no-longer-experimental" target="_blank"&gt;http://toddsampson.com/post/132906116887/docker-networking-no-longer-experimental&lt;/a&gt; for more information.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Once Docker is installed, you need to make the ROS Tutorial Docker image as described in the ROS instructions on Docker Hub.  Create a new directory, cd into it, and run the following:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;

printf &amp;quot;FROM ros:indigo-ros-base\nRUN apt-get update &amp;amp;&amp;amp; apt-get install -y ros-indigo-ros-tutorials ros-indigo-common-tutorials &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/ \n&amp;rdquo; &amp;gt; Dockerfile&lt;br/&gt;&lt;/p&gt;&lt;p&gt;docker build &amp;ndash;tag ros:ros-tutorials .&lt;br/&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;If all went well, you will have a ros:ros-tutorial Docker image.  Now we can create a new Docker network:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;docker network create foo&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;To use the network, open three terminal windows or tabs.  We will run one of the following commands in each terminal.  These will spin up roscore (master), a talker and a listener using the rostutorial image.  Be sure to launch master first. (Note: These are based on the ROS Docker Hub page, but updated for changes to Docker networking.)&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;

docker run -it &amp;ndash;rm &amp;ndash;net=foo &amp;ndash;name master ros:ros-tutorials  roscore&lt;br/&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;

docker run -it &amp;ndash;rm &amp;ndash;net=foo &amp;ndash;env ROS_HOSTNAME=talker &amp;ndash;env ROS_MASTER_URI=http://master:11311 &amp;ndash;name talker ros:ros-tutorials  rosrun roscpp_tutorials talker&lt;br/&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;

docker run -it &amp;ndash;rm &amp;ndash;net=foo &amp;ndash;env ROS_HOSTNAME=listener &amp;ndash;env ROS_MASTER_URI=http://master:11311 &amp;ndash;name listener ros:ros-tutorials  rosrun roscpp_tutorials listener&lt;br/&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Again, if all went well, you should see messages published by the talker being displayed by the listener subscriber.&lt;/p&gt;&lt;p&gt;&lt;b&gt;ROS Networking with Docker Compose 1.5.0 RC1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Now that we have Docker’s new networking working from the command line, let’s setup Docker Compose to automate spinning-up our container network.&lt;/p&gt;&lt;p&gt;First we need to install the release candidate for 1.5.0 by running the following in terminal:&lt;br/&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;sudo su&lt;br/&gt;&lt;/p&gt;&lt;p&gt;curl -L &lt;a href="https://github.com/docker/compose/releases/download/1.5.0rc1/docker-compose-%60uname" target="_blank"&gt;https://github.com/docker/compose/releases/download/1.5.0rc1/docker-compose-`uname&lt;/a&gt; -s`-`uname -m` &amp;gt; /usr/local/bin/docker-compose&lt;/p&gt;&lt;p&gt;chmod +x /usr/local/bin/docker-compose&lt;/p&gt;&lt;p&gt;exit&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Next create a Docker Compose YAML file to launch our ROS container network:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;printf &amp;lsquo;master:\n  image: ros:ros-tutorials\n  container_name: master\n  command: roscore \ntalker:\n  image: ros:ros-tutorials\n  container_name: talker\n  environment:\n      - &amp;ldquo;ROS_HOSTNAME=talker&amp;rdquo;\n      - &amp;ldquo;ROS_MASTER_URI=http://master:11311&amp;rdquo;\n  command: rosrun roscpp_tutorials talker\nlistener:\n  image: ros:ros-tutorials\n  container_name: listener\n  environment:\n      - &amp;ldquo;ROS_HOSTNAME=listener&amp;rdquo;\n      - &amp;ldquo;ROS_MASTER_URI=http://master:11311&amp;rdquo;\n  command: rosrun roscpp_tutorials listener\n&amp;rsquo; &amp;gt; docker-compose.yml&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Now start the network:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;

docker-compose &amp;ndash;x-networking up -d&lt;br/&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;To verify that the containers all started correctly run:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;docker ps&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;And to verify that the listener is receiving messages correctly:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;docker logs listener&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;One final note, Docker Compose will automatically create a new network based on the name of the directory containing the config YAML file.  You can see this network with:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;docker network ls&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Docker’s new networking and ROS have so much potential.  I will be sure to post more as I run further tests.  Feel free to follow me here or &lt;a href="https://twitter.com/toddsampson" target="_blank"&gt;on twitter at @toddsampson&lt;/a&gt; if you are interested in learning more.&lt;/p&gt;</description><link>https://toddsampson.com/post/131227320927</link><guid>https://toddsampson.com/post/131227320927</guid><pubDate>Thu, 15 Oct 2015 09:45:32 -0700</pubDate></item><item><title>A quick demo video of hand tracking I just got working under...</title><description>&lt;iframe width="400" height="225" src="https://www.youtube.com/embed/QlfkrhifzjY" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;A quick demo video of hand tracking I just got working under Linux and ROS.  I know I’m a total geek, but I find this incredibly cool.&lt;/p&gt;</description><link>https://toddsampson.com/post/131058885872</link><guid>https://toddsampson.com/post/131058885872</guid><pubDate>Mon, 12 Oct 2015 18:33:15 -0700</pubDate><category>ros</category><category>leap motion</category><category>linux</category><category>hand tracking</category></item><item><title>More pieces of the ROS motion tracking system I’m building: 3D...</title><description>&lt;img src="https://64.media.tumblr.com/58a54e0d3cc3bc63bebed46f3820aeb8/tumblr_nw2nb1ssOV1qzt66ro1_500.jpg"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="https://64.media.tumblr.com/766b55900910353833e2784c499d2192/tumblr_nw2nb1ssOV1qzt66ro3_500.jpg"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="https://64.media.tumblr.com/4a49269b6e5ef4133c2f035affb381fc/tumblr_nw2nb1ssOV1qzt66ro2_500.jpg"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;p&gt;More pieces of the ROS motion tracking system I’m building: 3D printed Leap Motion and Structure Sensor mounting brackets from Thingiverse&lt;/p&gt;</description><link>https://toddsampson.com/post/130968420307</link><guid>https://toddsampson.com/post/130968420307</guid><pubDate>Sun, 11 Oct 2015 12:54:37 -0700</pubDate><category>3dprinting</category><category>ros</category><category>leapmotion</category><category>structuresensor</category></item><item><title>Testing Open Source Robotic Grippers</title><description>&lt;p&gt;In order to test out the &lt;a href="http://toddsampson.com/post/129865397952/first-prototype-of-a-tracking-glove-for-motion" target="_blank"&gt;motion/force/flex sensing glove&lt;/a&gt; I have been working on integrating with &lt;a href="http://www.ros.org/" target="_blank"&gt;ROS&lt;/a&gt;, I need a few robotic grippers.  (Think hands for robots.)  As always, I’m starting with checking out what is out there in open source land.&lt;br/&gt;&lt;/p&gt;&lt;p&gt;The first gripper we tried to build was &lt;a href="http://www.thingiverse.com/thing:51403" target="_blank"&gt;Mad Mare Studio’s Medium-Duty Robot Gripper&lt;/a&gt;.  While I dig the overall design, I realized there is no way one of our RepRap Prusa printers was going to successfully print the two largest parts due to several inch long bridges &amp;ndash; which frankly don’t appear to be needed.  (I discovered this two hours in to the second to last print&amp;hellip; Le sigh.)  I may try modify the parts an reprint them soon.&lt;/p&gt;&lt;figure data-orig-width="3264" data-orig-height="2448" class="tmblr-full"&gt;&lt;img src="https://64.media.tumblr.com/fcbc5ca36248061468323eff29f05791/tumblr_inline_nvta0aRFW11qzt54t_540.jpg" alt="image" data-orig-width="3264" data-orig-height="2448"/&gt;&lt;/figure&gt;&lt;p&gt;I just finished building &lt;a href="http://www.thingiverse.com/thing:2414" target="_blank"&gt;JJShortcut’s Standard Servo Gripper&lt;/a&gt;.  I picked this gripper since it could be printed on a standard 3d printer, cut on a laser cutter or machined on a CNC machine.  I went for MDF on the CNC machine since it was just for testing.&lt;/p&gt;&lt;figure class="tmblr-full" data-orig-height="2448" data-orig-width="3264"&gt;&lt;img src="https://64.media.tumblr.com/dd56dbc88bdb61792c919291256946e0/tumblr_inline_nvtarrzxJv1qzt54t_540.jpg" data-orig-height="2448" data-orig-width="3264"/&gt;&lt;/figure&gt;&lt;p&gt;The original build of JJ’s SSG didn’t work too well.  I’m sure it was something I did in the machining, but I’m not sure if I machined the holes too tight or did something else.  I ended up modifying one of the gears using a drill press so I could attach a round, metal servo horn.&lt;/p&gt;&lt;figure class="tmblr-full" data-orig-height="2448" data-orig-width="3264"&gt;&lt;img src="https://64.media.tumblr.com/0f774b690ddb168079c16be565d914c6/tumblr_inline_nvtavsPCnN1qzt54t_540.jpg" data-orig-height="2448" data-orig-width="3264"/&gt;&lt;/figure&gt;&lt;figure class="tmblr-full" data-orig-height="3264" data-orig-width="2448"&gt;&lt;img src="https://64.media.tumblr.com/077620a65c2a45ae1794f6ecf2ed67a1/tumblr_inline_nvtc461gXm1qzt54t_540.jpg" data-orig-height="3264" data-orig-width="2448"/&gt;&lt;/figure&gt;&lt;p&gt;This modification worked like a charm, as you can see in the following video showing the gripper doing a simple sweep motion controlled by an Arduino:&lt;/p&gt;&lt;figure class="tmblr-embed tmblr-full" data-provider="youtube" data-orig-width="540" data-orig-height="304" data-url="https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D76JHdTuuxkk"&gt;&lt;iframe width="540" height="304" id="youtube_iframe" src="https://www.youtube.com/embed/76JHdTuuxkk?feature=oembed&amp;amp;enablejsapi=1&amp;amp;origin=https://safe.txmblr.com&amp;amp;wmode=opaque" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/figure&gt;&lt;p&gt;This gripper didn’t have enough torque or grip strength for my needs, but it was great to spark ideas for future builds.  I am still debating if I should just design my own gripper or try building one from the &lt;a href="http://www.eng.yale.edu/grablab/openhand/" target="_blank"&gt;Yale OpenHand Project&lt;/a&gt; &amp;ndash; which look amazing but appear incredibly complex to make.&lt;/p&gt;</description><link>https://toddsampson.com/post/130632327397</link><guid>https://toddsampson.com/post/130632327397</guid><pubDate>Tue, 06 Oct 2015 12:15:45 -0700</pubDate><category>robots</category><category>gripper</category><category>arduino</category><category>open source</category></item><item><title>Want an Amazing Week</title><description>&lt;p&gt;Man, what a great week.&lt;/p&gt;&lt;p&gt;Some cool weather has finally made it to Florida!&lt;/p&gt;&lt;p&gt;I managed to get up at 3am yesterday and today to watch all of the ROSCON 2015 talks.  Fantastic info.  Feels like robotics are at an exciting tipping point, lead by ROS (the Robotic Operating System) on the software side.  So many ideas&amp;hellip;&lt;/p&gt;&lt;p&gt;Our seven-year-old daughter blew everyone’s mind at Parkour this week when she made it up the eight-foot warp-wall for the first time.  So proud of her.  She set a goal and worked her butt off to make it happen.&lt;/p&gt;&lt;p&gt;Several great business and personal projects in the work, including an amazing project my wife Lis is building for our son’s Halloween costume.  He is going as Scout from Team Fortress 2 (TF2 is his favorite game) and she is building a custom Scattergun for the costume.&lt;/p&gt;&lt;p&gt;As part of that project, she asked me to design and machine a handle for the Scattergun.  I hit VCarve Pro and built this prototype out of MDF on the Shopbot.  The final version will be made from real wood and aluminum; and have a working trigger.&lt;/p&gt;&lt;figure class="tmblr-full" data-orig-height="2448" data-orig-width="3264"&gt;&lt;img src="https://64.media.tumblr.com/3651810ff289b443b6c8a6b50b0d3b3f/tumblr_inline_nvpzclEIY01qzt54t_540.jpg" data-orig-height="2448" data-orig-width="3264"/&gt;&lt;/figure&gt;&lt;figure class="tmblr-full" data-orig-height="2448" data-orig-width="3264"&gt;&lt;img src="https://64.media.tumblr.com/4ed08bd3452450a6429b5e990d4094ef/tumblr_inline_nvpzdvPZer1qzt54t_540.jpg" data-orig-height="2448" data-orig-width="3264"/&gt;&lt;/figure&gt;&lt;figure class="tmblr-full" data-orig-height="2448" data-orig-width="3264"&gt;&lt;img src="https://64.media.tumblr.com/76e918601128a41d6321be2c0a14fda7/tumblr_inline_nvpzdgketX1qzt54t_540.jpg" data-orig-height="2448" data-orig-width="3264"/&gt;&lt;/figure&gt;&lt;p&gt;While we worked on the build, our kids and a bunch of the kids from the neighborhood held a battle bots competition in the garage.  Sphero’s new BB-8 held its own surprisingly well against a Nerf Haxapod, MiP and custom Android-controlled Lego NXT spiderbot my son built &amp;amp; programmed.  Good times.&lt;/p&gt;&lt;figure class="tmblr-full" data-orig-height="1693" data-orig-width="2257"&gt;&lt;img src="https://64.media.tumblr.com/5a3acdd2e50e1350c14b346ade83e599/tumblr_inline_nvpzisxyXr1qzt54t_540.jpg" data-orig-height="1693" data-orig-width="2257"/&gt;&lt;/figure&gt;&lt;p&gt;Then we wrapped the day with this sunset.&lt;/p&gt;&lt;figure class="tmblr-full" data-orig-height="2448" data-orig-width="3264"&gt;&lt;img src="https://64.media.tumblr.com/546580914bfab0373b14fde44a1ecadf/tumblr_inline_nvpzkrImeK1qzt54t_540.jpg" data-orig-height="2448" data-orig-width="3264"/&gt;&lt;/figure&gt;&lt;p&gt;Making sure I stop to reflect on how amazing life is right now.  I’m seriously grateful.&lt;/p&gt;&lt;p&gt;P.S. Thanks for the TF2 Scattergun blueprints HVDprops.  They worked great as a starting point for the build. (&lt;a href="https://www.reddit.com/r/gaming/comments/x9w71/i_just_finished_the_blueprints_for_my_scouts/" target="_blank"&gt;https://www.reddit.com/r/gaming/comments/x9w71/i_just_finished_the_blueprints_for_my_scouts/&lt;/a&gt;)&lt;/p&gt;</description><link>https://toddsampson.com/post/130512529537</link><guid>https://toddsampson.com/post/130512529537</guid><pubDate>Sun, 04 Oct 2015 17:00:27 -0700</pubDate></item><item><title>My little helper showing off motion tracking visualization in...</title><description>
&lt;video  id='embed-6a233d39eedfa675000031' class='crt-video crt-skin-default' width='400' height='225' poster='https://64.media.tumblr.com/tumblr_nvgtsufcKh1qzt66r_frame1.jpg' preload='none' muted data-crt-video data-crt-options='{"autoheight":null,"duration":8,"hdUrl":"https://va.media.tumblr.com/tumblr_nvgtsufcKh1qzt66r_720.mp4","filmstrip":{"url":"https://38.media.tumblr.com/previews/tumblr_nvgtsufcKh1qzt66r_filmstrip.jpg","width":"200","height":"112"}}' crossOrigin='anonymous' controls&gt;
    &lt;source src="https://va.media.tumblr.com/tumblr_nvgtsufcKh1qzt66r_480.mp4" type="video/mp4"&gt;
&lt;/video&gt;
&lt;br/&gt;&lt;br/&gt;&lt;p&gt;My little helper showing off motion tracking visualization in ROS while HR-OS1 looks on.&lt;/p&gt;</description><link>https://toddsampson.com/post/130169115291</link><guid>https://toddsampson.com/post/130169115291</guid><pubDate>Tue, 29 Sep 2015 18:07:53 -0700</pubDate><category>ROS</category><category>IMU</category></item><item><title>It’s alive!  Motion Tracking Glove Mk 1 is sending data.</title><description>
&lt;video  id='embed-6a233d39ef09f203683354' class='crt-video crt-skin-default' width='400' height='225' poster='https://64.media.tumblr.com/tumblr_nv91pwDasv1qzt66r_frame1.jpg' preload='none' muted data-crt-video data-crt-options='{"autoheight":null,"duration":36,"hdUrl":"https://va.media.tumblr.com/tumblr_nv91pwDasv1qzt66r_720.mp4","filmstrip":{"url":"https://33.media.tumblr.com/previews/tumblr_nv91pwDasv1qzt66r_filmstrip.jpg","width":"200","height":"112"}}' crossOrigin='anonymous' controls&gt;
    &lt;source src="https://va.media.tumblr.com/tumblr_nv91pwDasv1qzt66r_480.mp4" type="video/mp4"&gt;
&lt;/video&gt;
&lt;br/&gt;&lt;br/&gt;&lt;p&gt;It’s alive!  Motion Tracking Glove Mk 1 is sending data.&lt;/p&gt;</description><link>https://toddsampson.com/post/129865580927</link><guid>https://toddsampson.com/post/129865580927</guid><pubDate>Fri, 25 Sep 2015 13:18:53 -0700</pubDate></item><item><title>First prototype of a tracking glove for motion, touch (force)...</title><description>&lt;img src="https://64.media.tumblr.com/b516a2b8c9fd658fdaee41a598dffe70/tumblr_nv91mbKm8V1qzt66ro1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;First prototype of a tracking glove for motion, touch (force) and flex is almost finished.&lt;/p&gt;</description><link>https://toddsampson.com/post/129865397952</link><guid>https://toddsampson.com/post/129865397952</guid><pubDate>Fri, 25 Sep 2015 13:15:47 -0700</pubDate></item><item><title>(via Star Wars The Force Awakens BB-8 Toy Teardown - YouTube) </title><description>&lt;iframe width="400" height="225"  id="youtube_iframe" src="https://www.youtube.com/embed/iAtXdhUT3IM?feature=oembed&amp;enablejsapi=1&amp;origin=https://safe.txmblr.com&amp;wmode=opaque" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="Star Wars The Force Awakens BB-8 Toy Teardown"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;(via &lt;a href="https://www.youtube.com/watch?t=100&amp;v=iAtXdhUT3IM" target="_blank"&gt;Star Wars The Force Awakens BB-8 Toy Teardown - YouTube&lt;/a&gt;) &lt;/p&gt;</description><link>https://toddsampson.com/post/128888393052</link><guid>https://toddsampson.com/post/128888393052</guid><pubDate>Fri, 11 Sep 2015 19:40:58 -0700</pubDate></item><item><title>"I’m thinking about the obsolete and the new."</title><description>“I’m thinking about the obsolete and the new.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Jimi Hendrix&lt;br/&gt;&lt;/em&gt;</description><link>https://toddsampson.com/post/128725346677</link><guid>https://toddsampson.com/post/128725346677</guid><pubDate>Wed, 09 Sep 2015 13:02:15 -0700</pubDate></item><item><title>(via Introduction to Deep Learning with Python - YouTube) </title><description>&lt;iframe width="400" height="225"  id="youtube_iframe" src="https://www.youtube.com/embed/S75EdAcXHKk?feature=oembed&amp;enablejsapi=1&amp;origin=https://safe.txmblr.com&amp;wmode=opaque" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="Introduction to Deep Learning with Python"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;(via &lt;a href="https://www.youtube.com/watch?v=S75EdAcXHKk" target="_blank"&gt;Introduction to Deep Learning with Python - YouTube&lt;/a&gt;) &lt;/p&gt;</description><link>https://toddsampson.com/post/128680271462</link><guid>https://toddsampson.com/post/128680271462</guid><pubDate>Tue, 08 Sep 2015 19:31:02 -0700</pubDate></item><item><title>Protocube Simplifies 3D Printing of Facesets for Stop Animation With 7-Steps Workflow</title><description>&lt;a href="http://3dprintingindustry.com/2015/08/17/protocube-simplifies-3d-printing-of-facesets-for-stop-animation-with-7-steps-workflow/"&gt;Protocube Simplifies 3D Printing of Facesets for Stop Animation With 7-Steps Workflow&lt;/a&gt;</description><link>https://toddsampson.com/post/126918412542</link><guid>https://toddsampson.com/post/126918412542</guid><pubDate>Mon, 17 Aug 2015 09:01:44 -0700</pubDate></item></channel></rss>
