Sorry, but that is not what the halting problem say.

The halting problems state that "For any interesting property(In this example: "Is this robot code safe to run") there exists programs with this property, but where you can not prove that the program has the property.

That is: There exists robot programs which are safe to run, but where we can newer prove that they are safe.

And the general solution is to only run programs where we can prove that they are safe. This mean that we do reject safe programs because we can't prove that they are safe*, but it does not in any way change the programs which we can express. That is: For any program which is safe, but where safety cant' be proved, there exists a program which behave in exactly the same way for all input, but which is safe.**

*If we can't prove that a program is safe, then it is either because no such prof exists, or it is because we are not good enough to prove it.

**No this does not contradict the halting problem, due to the assumption that the program is safe. If the program is not safe, then the transformation will convert the program to a safe program which obviously will not do the same